如何在SQLServer2000中编写查询?

如何在SQLServer2000中编写查询?,sql,sql-server-2008,sql-server-2000,Sql,Sql Server 2008,Sql Server 2000,我有两个具有相同表和视图的数据库,一个在SQLServer2008中,另一个在SQLServer2000中 我编写了这个查询,它在SQLServer2008中工作,但在SQLServer2000中不工作 如何更改代码以在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 FR

我有两个具有相同表和视图的数据库,一个在SQLServer2008中,另一个在SQLServer2000中

我编写了这个查询,它在SQLServer2008中工作,但在SQLServer2000中不工作

如何更改代码以在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

很难说不知道哪张表是NA_DA&NA_CA,或者知道哪张表有SI_voucher作为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组合返回一行。