如何在SQL Server 2000中编写查询?

问题描述:

我有2个数据库具有相同的表和视图,一个在SQL Server 2008中,另一个在SQL Server 2000中。如何在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 

这是很难说的w/o知道哪个表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; 
+0

这是真的* *合理查询。它可能比问题中的查询更好。但是,它不会返回相同的结果。这将返回一个凭单H的行。问题中的每个凭单H /凭证D组合都有一行。 –