Sql server 自联接表和使用差异标准求和同一列(SQL Server)
寻求帮助,向我展示如何将以下查询合并在一起,同时将问题和转移的结果汇总到一个新列中 我曾尝试将它们作为子查询以及内部和外部联接来执行,但没有成功 如有任何想法或方向可供搜索,将不胜感激 当前查询和结果:Sql server 自联接表和使用差异标准求和同一列(SQL Server),sql-server,mssql-jdbc,Sql Server,Mssql Jdbc,寻求帮助,向我展示如何将以下查询合并在一起,同时将问题和转移的结果汇总到一个新列中 我曾尝试将它们作为子查询以及内部和外部联接来执行,但没有成功 如有任何想法或方向可供搜索,将不胜感激 当前查询和结果: --30 & 90 day issues query SELECT Table1.itemnum, SUM(Table1.quantity) AS SumOfquantityIssue FROM Table1 WHERE Table1.transdate &
--30 & 90 day issues query
SELECT
Table1.itemnum, SUM(Table1.quantity) AS SumOfquantityIssue
FROM
Table1
WHERE
Table1.transdate > GETDATE() - 30
AND Table1.issuetype = 'ISSUE'
AND Table1.gldebitacct IS NOT NULL
AND Table1.fromstoreloc IN ('WFOWH', 'WFOPY')
GROUP BY
Table1.itemnum
ORDER BY
Table.itemnum;
我从该查询中获得的结果:
itemnum SumOfquantityIssue
----------------------------
1007 -1.00
第二个问题:
--30 & 90 day transfers query
SELECT
Table1.itemnum, SUM(Table1.quantity) AS SumOfquantityTransfer
FROM
Table1
WHERE
Table1.transdate > GETDATE() - 30
AND Table1.issuetype = 'TRANSFER'
AND Table1.gldebitacct IS NOT NULL
AND Table1.fromstoreloc IN ('WFOWH', 'WFOPY')
GROUP BY
Table1.itemnum
ORDER BY
Table1.itemnum;
我从该查询中获得的结果:
itemnum SumOfquantityTransfer
------------------------------
1007 1.00
2347 20.05
我希望得到的结果如下:
Itemnum SumOfquantityIssue SumOfquantityTransfer Total_Sum
-------------------------------------------------------------------
1007 1.00 -1.00 0.00
2347 20.05 0.00 20.05
您可以在这样一个查询中完成此操作。。联合起来。。我还没有在SSMS中运行这个来检查。。我简直是疯了
SELECT
Table1.itemnum
, Sum(Table1.quantity) AS SumOfquantityIssue
, isnull(Sum(Table2.quantity),0) AS SumOfquantityTransfer
, Sum(Table1.quantity) + isnull(Sum(Table2.quantity),0) as total_sum
FROM Table1
LEFT JOIN Table1 as Table2
ON Table2.itemnum = Table1.itemnum
AND Table2.issuetype ='TRANSFER'
AND Table2.gldebitacct Is Not Null
AND Table2.fromstoreloc in('WFOWH','WFOPY')
AND Table2.transdate>getdate()-30
WHERE Table1.transdate>getdate()-30
AND Table1.issuetype ='ISSUE'
AND Table1.gldebitacct Is Not Null
AND Table1.fromstoreloc in('WFOWH','WFOPY')
GROUP BY Table1.itemnum
ORDER BY Table.itemnum;
在没有样本数据的情况下进行测试很有挑战性。。代码是总体思路。。可能的更改取决于样本数据。。但是为了OP想要的。。这个“应该”行得通谢谢大家,查询成功了。这正是我所需要的。我认为下面Harry的解决方案会起作用,但另一个选择是使用公共表表达式(CTE)。您可以将每个子查询放在一个CTE中,然后在
Itemnum