我试图找出同一个表中两行之间的差异。无法找到正确的查询。例如,我有
Year Item Qty Amount
------------------------------
2014 Shoes 500 2500
2014 Ties 300 900
2014 Pants 200 4000
2015 Shoes 600 3000
2015 Ties 200 600
我想知道从去年到今年增加(或减少)的是什么。我永远只有两年时间可以比较。查询结果应如下所示:
Items Qty Diff Amount Diff
------------------------------
Shoes 100 500
Ties (-100) (-300)
Pants Null Null
查询应该是什么样的?
最佳答案
如果你想包含所有的东西,那么你可以使用FULL OUTER JOIN
,如果只是前一年的那个,LEFT OUTER JOIN
,如果你想要那个与前一年和随后的年份,然后 INNER JOIN
。
SELECT
T1.Item
, (T2.QTY-T1.QTY) AS [QTY Diff]
, (T2.Amount - T1.Amount) AS [Amount Diff]
FROM
<<Table>> T1
LEFT OUTER JOIN <<Table>> T2
ON T1.Item=T2.Item
AND T1.YEAR=(T2.YEAR-1);
关于sql - 比较同一个sql表中两行的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41029699/