: 目標Table_1 (列出5962所有Product)
: -
: Week ProductID Area DataDiff
: 5962 B K -20(=13-33)
: 5962 C K 16(=28-12)
: 5962 D K NA
: 5962 E K NA
: 目標Table_2 (列出只列出兩週共有的Product)
: -
: Week ProductID Area DataDiff
: 5962 B K -20(=13-33)
: 5962 C K 16(=28-12)
SELECT S.[week]
,S.[p_id]
,S.[area]
,S.[data]
,T.[p_id] [Tp_id]
,T.[area] [Tarea]
,T.[data] [Tdata]
,S.[data]-T.[data]
FROM (SELECT *
FROM [test].[dbo].[Table] )AS S
JOIN (SELECT [week]+1 [week]
,[p_id]
,[area]
,[data]
FROM [test].[dbo].[Table]) AS T
ON S.[week]=T.[week] AND S.[p_id]=T.[p_id] AND S.[area]=T.[area]
這是SQL server的語法
這樣會有你要的第二個結果
如果你要第一個結果
就把JOIN 改成 LEFT JOIN 然後最下面 加個WHERE [week]=5962
希望魯蛇的答案對你有幫助QQ