【发布时间】:2011-07-15 15:39:25
【问题描述】:
我无法弄清楚这是我的表结构:
Table period(yearMonth varchar(6), weekOfMonth varchar(1), fullDate date)
Table data(SKU varchar(6), received int, yearMonth varchar(6), fullDate date)
这是我这段时期的数据:
yearMonth weekOfMonth fullDate
------------------------------------------
201104 1 Apr 3 2011 12:00AM
201104 1 Apr 4 2011 12:00AM
201104 1 Apr 5 2011 12:00AM
201104 1 Apr 6 2011 12:00AM
201104 1 Apr 7 2011 12:00AM
201104 1 Apr 8 2011 12:00AM
201104 1 Apr 9 2011 12:00AM
201104 2 Apr 10 2011 12:00AM
201104 2 Apr 11 2011 12:00AM
201104 2 Apr 12 2011 12:00AM
201104 2 Apr 13 2011 12:00AM
201104 2 Apr 14 2011 12:00AM
201104 2 Apr 15 2011 12:00AM
201104 2 Apr 16 2011 12:00AM
201104 3 Apr 17 2011 12:00AM
201104 3 Apr 18 2011 12:00AM
201104 3 Apr 19 2011 12:00AM
201104 3 Apr 20 2011 12:00AM
201104 3 Apr 21 2011 12:00AM
201104 3 Apr 22 2011 12:00AM
201104 3 Apr 23 2011 12:00AM
201104 4 Apr 24 2011 12:00AM
201104 4 Apr 25 2011 12:00AM
201104 4 Apr 26 2011 12:00AM
201104 4 Apr 27 2011 12:00AM
201104 4 Apr 28 2011 12:00AM
201104 4 Apr 29 2011 12:00AM
201104 4 Apr 30 2011 12:00AM
201105 1 May 1 2011 12:00AM
201105 1 May 2 2011 12:00AM
201105 1 May 3 2011 12:00AM
201105 1 May 4 2011 12:00AM
201105 1 May 5 2011 12:00AM
201105 1 May 6 2011 12:00AM
201105 1 May 7 2011 12:00AM
201105 2 May 8 2011 12:00AM
201105 2 May 9 2011 12:00AM
201105 2 May 10 2011 12:00AM
201105 2 May 11 2011 12:00AM
201105 2 May 12 2011 12:00AM
201105 2 May 13 2011 12:00AM
201105 2 May 14 2011 12:00AM
201105 3 May 15 2011 12:00AM
201105 3 May 16 2011 12:00AM
201105 3 May 17 2011 12:00AM
201105 3 May 18 2011 12:00AM
201105 3 May 19 2011 12:00AM
201105 3 May 20 2011 12:00AM
201105 3 May 21 2011 12:00AM
201105 4 May 22 2011 12:00AM
201105 4 May 23 2011 12:00AM
201105 4 May 24 2011 12:00AM
201105 4 May 25 2011 12:00AM
201105 4 May 26 2011 12:00AM
201105 4 May 27 2011 12:00AM
201105 4 May 28 2011 12:00AM
201106 1 Jun 1 2011 12:00AM
201106 1 Jun 2 2011 12:00AM
201106 1 Jun 3 2011 12:00AM
201106 1 Jun 4 2011 12:00AM
201106 1 May 29 2011 12:00AM
201106 1 May 30 2011 12:00AM
201106 1 May 31 2011 12:00AM
201106 2 Jun 5 2011 12:00AM
201106 2 Jun 6 2011 12:00AM
201106 2 Jun 7 2011 12:00AM
201106 2 Jun 8 2011 12:00AM
201106 2 Jun 9 2011 12:00AM
201106 2 Jun 10 2011 12:00AM
201106 2 Jun 11 2011 12:00AM
201106 3 Jun 12 2011 12:00AM
201106 3 Jun 13 2011 12:00AM
201106 3 Jun 14 2011 12:00AM
201106 3 Jun 15 2011 12:00AM
201106 3 Jun 16 2011 12:00AM
201106 3 Jun 17 2011 12:00AM
201106 3 Jun 18 2011 12:00AM
201106 4 Jun 19 2011 12:00AM
201106 4 Jun 20 2011 12:00AM
201106 4 Jun 21 2011 12:00AM
201106 4 Jun 22 2011 12:00AM
201106 4 Jun 23 2011 12:00AM
201106 4 Jun 24 2011 12:00AM
201106 4 Jun 25 2011 12:00AM
201106 5 Jul 1 2011 12:00AM
201106 5 Jul 2 2011 12:00AM
201106 5 Jun 26 2011 12:00AM
201106 5 Jun 27 2011 12:00AM
201106 5 Jun 28 2011 12:00AM
201106 5 Jun 29 2011 12:00AM
201106 5 Jun 30 2011 12:00AM
这是我尝试过的查询:
SELECT DISTINCT a.SKU, SUM(a.received) AS Received
a.yearMonth , p.weekOfMonth
FROM data a
RIGHT OUTER JOIN period p
ON p.fullDate = a.fullDate
WHERE p.yearMonth >= '201104' AND p.yearMonth < '201107'
GROUP BY a.SKU, a.yearMonth , p.weekOfMonth
如果没有数据,它不会返回每年的月份和该月的星期。
这是表数据中的数据:
sku received yearMonth fullDate
---------------------------------------
AAAA 5 201106 Jun 23 2011 12:00AM
BBBB 1 201106 Jun 10 2011 12:00AM
BBBB 1 201106 Jun 15 2011 12:00AM
这是我加入 2 个表时的数据:
SKU received yearMonth weekOfMonth
-------------------------------------
AAAA 5 201106 4
BBBB 1 201106 2
BBBB 1 201106 3
如果没有数据,我想显示 NULL 或 0 来表示收到,例如:
SKU received yearMonth weekOfMonth
-------------------------------------
AAAA 0 201104 1
AAAA 0 201104 2
AAAA 0 201104 3
AAAA 0 201104 4
AAAA 0 201105 1
AAAA 0 201105 2
AAAA 0 201105 3
AAAA 0 201105 4
AAAA 0 201106 1
AAAA 0 201106 2
AAAA 0 201106 3
AAAA 5 201106 4
AAAA 0 201106 5
BBBB 0 201104 1
BBBB 0 201104 2
BBBB 0 201104 3
BBBB 0 201104 4
BBBB 0 201105 1
BBBB 0 201105 2
BBBB 0 201105 3
BBBB 0 201105 4
BBBB 0 201106 1
BBBB 1 201106 2
BBBB 1 201106 3
BBBB 0 201106 4
BBBB 0 201106 5
提前致谢。
【问题讨论】:
-
那一年呢?什么数据类型是“月”?字符(2)?
-
对不起,我刚刚更新了它。我必须更改列,因为它是为了工作。
-
我很好奇为什么这被否决了...