按工作日sql每周总计

时间:2017-03-21 05:02:09

标签: sql sql-server sql-server-2008 sql-date-functions

我需要使用MS-SQL以日历方式显示每周总数。 在像这样的表中:

Id, auto-increment
WC, text (Departament)
Product, text
StDate, date (Stamp Date)
Completed (T/F)

我可以轻松地创建一个像这样的sumarize:

SELECT T.WC, T.StDate, T.Product, Count(T.Id) AS [Daily-Total]
FROM Table T
WHERE (((T.Completed)=True))
GROUP BY T.WC, T.StDate, T.Product
HAVING (((T.StDate)>=Date()-7 And (T.StDate)<=Date()));

并显示如下内容:

WC      StDate      Product Daily-Total
Finish  01/01/2017  Prod03  4
Finish  05/01/2017  Prod02  2
Finish  05/02/2017  Prod02  2
Robot   01/01/2017  Prod01  4
Robot   02/01/2017  Prod03  4
Robot   03/01/2017  Prod02  2
Robot   03/02/2017  Prod02  2
Tack    01/01/2017  Prod01  7
Tack    01/01/2017  Prod02  4
Tack    01/01/2017  Prod03  4
Tack    01/01/2017  Prod04  4

但我的老板要我这样表达(数字不真实):

Week10 WC     Prod  Monday Tuesday Wensday Thrusday Friday Saturday
       Tack   Prod1      1       0       3        2      0        0
       Tack   Prod2      0       1       0        1      1        0
       Robot  Prod2      3       1       2 ...
       Finish Prod1      1       4       5 ...
       Finish Prod3      3       4...

我需要一些嵌套或顺序选择,但无论哪种方式我找不到一个好的解决方案。

如果有人经历过这个,我很感激任何建议。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

使用PIVOT表概念:

$arr[] = 11