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