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