: 目标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