【问题标题】:How to combine these three queries from DB to a view如何将数据库中的这三个查询组合到一个视图中
【发布时间】:2013-04-16 09:42:09
【问题描述】:

如何将这三个查询合并到一个查询中,以便可以从此查询创建单个视图?

CREATE VIEW v1 AS
SELECT rp.ProjectName, rp.TaxRegime, rp.CashflowReportProfilePrimaryKey_ReportPrimaryKey FROM ReportProfiles rp
WHERE rp.CashflowReportProfilePrimaryKey_ReportPrimaryKey IS NOT NULL
GROUP BY rp.ProjectName, rp.TaxRegime, rp.CashflowReportProfilePrimaryKey_ReportPrimaryKey

CREATE VIEW v2 AS
SELECT vd.Year, vd.Data, r.ReportPrimaryKey FROM VectorData vd, Reports r
WHERE vd.FK_Vector = r.Pretax_VectorID AND vd.Data != 0 AND LEN(r.Name) < 1

SELECT v1.ProjectName, v1.TaxRegime, v2.Year, FORMAT(v2.Data, 'N', 'nb-NO') FROM v1, v2
WHERE v1.CashflowReportProfilePrimaryKey_ReportPrimaryKey = v2.ReportPrimaryKey
ORDER BY v1.ProjectName, v2.Year

【问题讨论】:

    标签: sql-server database view


    【解决方案1】:

    您可以像这样使用 CTE 并将其用作新视图的主体:

    Create View View1 as 
    with  v1 AS
        (
        SELECT 
            rp.ProjectName, 
            rp.TaxRegime, 
            rp.CashflowReportProfilePrimaryKey_ReportPrimaryKey 
        FROM ReportProfiles rp
        WHERE rp.CashflowReportProfilePrimaryKey_ReportPrimaryKey IS NOT NULL
        GROUP BY rp.ProjectName, rp.TaxRegime, rp.CashflowReportProfilePrimaryKey_ReportPrimaryKey
        )
        , v2 AS
        (
        SELECT 
            vd.Year, 
            vd.Data, 
            r.ReportPrimaryKey 
        FROM VectorData vd, Reports r
        WHERE vd.FK_Vector = r.Pretax_VectorID AND vd.Data != 0 AND LEN(r.Name) < 1
        )
        SELECT 
            v1.ProjectName,
            v1.TaxRegime, 
            v2.Year, 
            FORMAT(v2.Data, 'N', 'nb-NO') 
        FROM v1, v2
        WHERE v1.CashflowReportProfilePrimaryKey_ReportPrimaryKey = v2.ReportPrimaryKey
        ORDER BY v1.ProjectName, v2.Year
    

    【讨论】:

    • 如何使用这个body作为视图?
    • 所缺少的只是将 FORMAT 列命名为某种东西。 FORMAT(v2.Data, 'N', 'nb-NO') AS 'Data' 让它工作。非常感谢! =)
    猜你喜欢
    • 2022-06-13
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-08
    • 2013-07-23
    相关资源
    最近更新 更多