0
我是T-SQL的新手,我找不到这个查询。T-SQL查询 - 返回一个结果,或者返回0(SQL 2008R2)
我想比较项目的价值和它的分类账价值检查任何异常,因为他们偶尔会失去同步。
我需要查询,对于所有当前库存,从项目的“项目值”字段中减去项目分类帐的“金额”字段。有几个项目分类账分录,它必须从分类账分录中扣除金额。如果没有“开放式总帐分录”,则减去零。
我宰割一起在查询设计器的查询,对于草率道歉:
SELECT dbo.[Company$ItemTable].[Item No_],
dbo.[Company$ItemTable].[Current Stock],
dbo.[Company$ItemTable].[Item Value],
dbo.[Company$Item Ledger Entry].[Open],
dbo.[Company$ItemTable].[Item Value] - SUM(CASE
WHEN dbo.[Company$Item Ledger Entry].[Open] = 1 THEN dbo.[Company$Item Ledger Entry].Amount
ELSE 0
END) AS Diff,
SUM(CASE
WHEN dbo.[Company$Item Ledger Entry].[Open] = 1 THEN dbo.[Company$Item Ledger Entry].Amount
ELSE 0
END) AS AmountILE,
dbo.[Company$Item Ledger Entry].[Entry No_]
FROM dbo.[Company$ItemTable]
LEFT OUTER JOIN dbo.[Company$Item Ledger Entry]
ON dbo.[Company$ItemTable].[Item No_] = dbo.[Company$Item Ledger Entry].[Lot No_]
GROUP BY dbo.[Company$ItemTable].[Item No_],
dbo.[Company$ItemTable].[Current Stock],
dbo.[Company$ItemTable].[Item Value],
dbo.[Company$Item Ledger Entry].[Open],
dbo.[Company$Item Ledger Entry].[Entry No_]
HAVING (dbo.[Company$ItemTable].[Current Stock] = 1)
AND (dbo.[Company$ItemTable].[Item Value] - SUM(CASE
WHEN dbo.[Company$Item Ledger Entry].[Open] = 1 THEN dbo.[Company$Item Ledger Entry].Amount
ELSE 0
END) > 1)
AND (dbo.[Company$Item Ledger Entry].[Open] = 1)
这是否有道理?谁能帮忙?谢谢!
你需要问一个具体问题。现在,不清楚你的问题是什么,也不知道它的正确答案是什么。 – RBarryYoung
对不起, 我想将([ItemTable]。[Item Value] - [Item Ledger Entry]。[Amount])的值作为'Diff'返回。如果筛选器中没有项目分类帐输入项(IE - 否'打开'输入项),则返回0. 这是否有意义? – user2401849
上面的查询不是已经做到了吗? – RBarryYoung