Kha*_*han 2 sql t-sql sql-server sql-server-2008-r2
我试图找出同一个表中两行之间的差异.无法找到正确的查询.例如,我有
Year Item Qty Amount
------------------------------
2014 Shoes 500 2500
2014 Ties 300 900
2014 Pants 200 4000
2015 Shoes 600 3000
2015 Ties 200 600
Run Code Online (Sandbox Code Playgroud)
我试图找出从去年到今年增加(或减少)的数量.我总是只有两年时间来比较.查询结果应如下所示:
Items Qty Diff Amount Diff
------------------------------
Shoes 100 500
Ties (-100) (-300)
Pants Null Null
Run Code Online (Sandbox Code Playgroud)
查询应该是什么样的?
如果你想要包含所有东西,那么你可以使用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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |