【问题标题】:How write a query in SQL Server 2000?如何在 SQL Server 2000 中编写查询?
【发布时间】:2017-12-12 11:22:24
【问题描述】:

我有 2 个具有相同表和视图的数据库,一个在 SQL Server 2008 中,另一个在 SQL Server 2000 中。

我编写了这个查询,它在 SQL Server 2008 中有效,但在 SQL Server 2000 中无效。

如何更改我的代码以在 SQL Server 2000 中工作?

SELECT 
    SUM(NA_DA) OVER (PARTITION BY vd.SI_VoucherH) AS a,
    SUM(NA_CA) OVER (PARTITION BY vd.SI_VoucherH) AS b
FROM
    acc.ACC_VOUCHERH vh 
INNER JOIN 
    acc.Acc_VoucherD vd ON vh.SI_VoucherH = vd.SI_VoucherH

【问题讨论】:

    标签: sql sql-server-2008 sql-server-2000


    【解决方案1】:

    很难说不知道 NA_DA 和 NA_CA 来自哪个表,或者不知道哪个表有 SI_VoucherH 作为 PK,哪个有 FK。

    希望以下内容能让您接近...

    SELECT
        vda.NA_DA,
        vda.NA_CA
    FROM 
        acc.ACC_VOUCHERH vh 
        JOIN (
                select 
                    vd.SI_VoucherH,
                    NA_DA = Sum(vd.NA_DA),
                    NA_CA = SUM(NA_CA)
                FROM 
                    acc.Acc_VoucherD vd 
                GROUP BY
                    vd.SI_VoucherH
                ) vda
            on vh.SI_VoucherH=vda.SI_VoucherH;
    

    【讨论】:

    • 这是一个真正合理的查询。它可能比问题中的查询更好。但是,它不会返回相同的结果。这将返回每个凭证 H 一行。问题中的每个凭证 H/凭证 D 组合有一行。
    猜你喜欢
    • 2017-10-20
    • 1970-01-01
    • 2011-11-20
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-13
    • 2016-03-25
    • 1970-01-01
    相关资源
    最近更新 更多