我有两张桌子:
TableA是我们应该拥有每家公司销售数据的所有可能周的日历。
TableB包含已报告的每家公司每周销售额的财务数据。
TableA列
[cmp_code, Year, Week]
TAbleB专栏
[cmp_code, Year, Week, sales]
查询标准:
1)所有公司的当年和上一年的表B缺少列表周
2)列出该公司的上一年销售额和周数(如果存在)。 (示例cmp 1234缺少2013年第13周,因此显示2012年该周的值)
我已经尝试过连接,但我要么返回0值,要么返回数百万个值。我真的不知道从哪里开始。
我是SQL的新手,非常感谢提供的任何帮助。提前谢谢。
答案 0 :(得分:2)
这是一种方式:
SELECT TableA.*, bPrev.sales
FROM TableA
LEFT OUTER JOIN TableB
ON TableA.cmp_code = TableB.cmp_code
And TableA.[Year] = TableB.[Year]
And TableA.[Week] = TableB.[Week]
LEFT OUTER JOIN TableB As bPrev
ON TableA.cmp_code = bPrev.cmp_code
And TableA.[Year] = bPrev.[Year]+1
And TableA.[Week] = bPrev.[Week]
WHERE TableB.cmp_code IS NULL