Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从返回多行的两个select语句中获取差异_Sql_Sql Server - Fatal编程技术网

Sql 从返回多行的两个select语句中获取差异

Sql 从返回多行的两个select语句中获取差异,sql,sql-server,Sql,Sql Server,我有两个选择语句 SELECT SizeName,SUM(DESIGNSIZERELEASE.Quantity) as [Release] FROM DESIGNRELEASE JOIN DESIGNSIZERELEASE ON DESIGNRELEASE.DesignReleaseID = DESIGNSIZERELEASE.DesignReleaseID JOIN SIZESET ON SIZESET.SizeSetID = DESIGNSIZEREL

我有两个选择语句

SELECT SizeName,SUM(DESIGNSIZERELEASE.Quantity) as [Release]
FROM DESIGNRELEASE JOIN
     DESIGNSIZERELEASE
     ON DESIGNRELEASE.DesignReleaseID = DESIGNSIZERELEASE.DesignReleaseID JOIN
     SIZESET
     ON SIZESET.SizeSetID = DESIGNSIZERELEASE.SizeSetID AND
        DESIGNRELEASE.RevisionNo = SIZESET.RevisionNo
WHERE DESIGNRELEASE.RevisionNo = 2 AND DESIGNRELEASE.DesignID='SD00000'
GROUP BY DESIGNRELEASE.DesignID,Towhom,SizeName
ORDER BY case SizeName when 'XS' then 1 when 'S' then 2 when 'M' then 3 when 'L' then 4 when 'XL' then 5 end

有这两个结果

+----------+-------------+    
|Size NAME |RELEASE      |
+----------+-------------+
|S         |20           |
+----------+-------------+
|M         |20           |
+----------+-------------+   

+----------+
|Receive   |
+----------+
|10        |
+----------+
|10        |
+----------+

我需要获得释放和接收的差异,我如何才能做到这一点?谢谢,顺便说一句,我把它们分开了,因为当我把它们放在一个select语句中时,我没有得到正确的结果,我不确定你是否可以在mysql中这样做,但这是你可以在Oracle中做的

SELECT TABLE1.SizeName, TABLE1.Release, TABLE2.Receive, (TABLE1.Release - TABLE2.Receive) Difference
    FROM
    (SELECT SizeName, SUM(DESIGNSIZERELEASE.Quantity) as [Release] 
    FROM DESIGNRELEASE JOIN DESIGNSIZERELEASE ON DESIGNRELEASE.DesignReleaseID = DESIGNSIZERELEASE.DesignReleaseID 
    JOIN SIZESET ON SIZESET.SizeSetID = DESIGNSIZERELEASE.SizeSetID AND DESIGNRELEASE.RevisionNo = SIZESET.RevisionNo 
    WHERE DESIGNRELEASE.RevisionNo = 2 AND DESIGNRELEASE.DesignID='SD00000' 
    GROUP BY DESIGNRELEASE.DesignID,Towhom,SizeName 
    ORDER BY case SizeName when 'XS' then 1 when 'S' then 2 when 'M' then 3 when 'L' then 4 when 'XL' then 5 end) TABLE1
    ,
    (SELECT SizeName, SUM(DESIGNRECEIVEDETAILS.Quantity) as [Receive] 
    FROM DESIGNRELEASE JOIN DESIGNSIZERELEASE ON DESIGNRELEASE.DesignReleaseID = DESIGNSIZERELEASE.DesignReleaseID 
    JOIN SIZESET ON SIZESET.SizeSetID = DESIGNSIZERELEASE.SizeSetID AND DESIGNRELEASE.RevisionNo = SIZESET.RevisionNo 
    JOIN DESIGNRECEIVE ON DESIGNRECEIVE.DesignReleaseID = DESIGNRELEASE.DesignReleaseID 
    JOIN DESIGNRECEIVEDETAILS ON DESIGNRECEIVE.ReceiptID = DESIGNRECEIVEDETAILS.ReceiptID 
    AND DESIGNRECEIVEDETAILS.SizeSetID = SIZESET.SizeSetID WHERE DESIGNRELEASE.RevisionNo = 2 
    AND DESIGNRELEASE.DesignID='SD00000' GROUP BY DESIGNRELEASE.DesignID,Towhom,SizeName 
    ORDER BY case SizeName when 'XS' then 1 when 'S' then 2 when 'M' then 3 when 'L' then 4 when 'XL' then 5 end) TABLE2
    WHERE TABLE1.SizeName = Table2.SizeName

你有没有试过在“尺码名称”上加入表格,然后用ABS(可乐-可乐)找到绝对差异?@DanielPark还没有我会try@DanielPark它返回0
SELECT TABLE1.SizeName, TABLE1.Release, TABLE2.Receive, (TABLE1.Release - TABLE2.Receive) Difference
    FROM
    (SELECT SizeName, SUM(DESIGNSIZERELEASE.Quantity) as [Release] 
    FROM DESIGNRELEASE JOIN DESIGNSIZERELEASE ON DESIGNRELEASE.DesignReleaseID = DESIGNSIZERELEASE.DesignReleaseID 
    JOIN SIZESET ON SIZESET.SizeSetID = DESIGNSIZERELEASE.SizeSetID AND DESIGNRELEASE.RevisionNo = SIZESET.RevisionNo 
    WHERE DESIGNRELEASE.RevisionNo = 2 AND DESIGNRELEASE.DesignID='SD00000' 
    GROUP BY DESIGNRELEASE.DesignID,Towhom,SizeName 
    ORDER BY case SizeName when 'XS' then 1 when 'S' then 2 when 'M' then 3 when 'L' then 4 when 'XL' then 5 end) TABLE1
    ,
    (SELECT SizeName, SUM(DESIGNRECEIVEDETAILS.Quantity) as [Receive] 
    FROM DESIGNRELEASE JOIN DESIGNSIZERELEASE ON DESIGNRELEASE.DesignReleaseID = DESIGNSIZERELEASE.DesignReleaseID 
    JOIN SIZESET ON SIZESET.SizeSetID = DESIGNSIZERELEASE.SizeSetID AND DESIGNRELEASE.RevisionNo = SIZESET.RevisionNo 
    JOIN DESIGNRECEIVE ON DESIGNRECEIVE.DesignReleaseID = DESIGNRELEASE.DesignReleaseID 
    JOIN DESIGNRECEIVEDETAILS ON DESIGNRECEIVE.ReceiptID = DESIGNRECEIVEDETAILS.ReceiptID 
    AND DESIGNRECEIVEDETAILS.SizeSetID = SIZESET.SizeSetID WHERE DESIGNRELEASE.RevisionNo = 2 
    AND DESIGNRELEASE.DesignID='SD00000' GROUP BY DESIGNRELEASE.DesignID,Towhom,SizeName 
    ORDER BY case SizeName when 'XS' then 1 when 'S' then 2 when 'M' then 3 when 'L' then 4 when 'XL' then 5 end) TABLE2
    WHERE TABLE1.SizeName = Table2.SizeName