如何在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;
这是真的* *合理查询。它可能比问题中的查询更好。但是,它不会返回相同的结果。这将返回一个凭单H的行。问题中的每个凭单H /凭证D组合都有一行。 –