1

我有 2 张桌子:

TableA 是我们应该拥有每家公司的销售数据的所有可能周的日历。

表 B 包含已报告的每家公司每周销售额的财务数据。

表 A 列

[cmp_code, Year, Week]

表 B 列

[cmp_code, Year, Week, sales]

查询条件:

1) 列出所有公司的本年度和上一年表 B 中缺少的周数

2) 列出该公司上一年的销售额,如果存在则列出周。(示例 cmp 1234 缺少 2013 年第 13 周,因此显示 2012 年该周的值)

我已经尝试过连接,但要么返回 0 个值,要么返回数百万个值。我真的不知道从哪里开始。

我对 SQL 很陌生,非常感谢提供的任何帮助。提前致谢。

4

1 回答 1

3

这是一种方式:

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
于 2013-09-24T16:34:13.480 回答