我的数据库如下所示:
ID |DATETIME |T_NUMBER|SOLD|STORE_ID|
---+----------+--------+----+--------+
1 |2019-02-01|1111 |10 |STORE_1
-------------------------------------|
2 |2019-02-01|1112 |5 |STORE_1
-------------------------------------|
3 |2019-02-02|1113 |10 |STORE_1
-------------------------------------|
4 |2019-02-02|1114 |7 |STORE_1
-------------------------------------|
5 |2019-02-02|1115 |3 |STORE_1
-------------------------------------|
6 |2019-02-03|1116 |4 |STORE_1
-------------------------------------| etc.
我想要的结果如下:
STORE | 1 | 2 | 3 | 4 | 5 | ..... |28|
-------+---+---+---+---+---+-------+--+
STORE_1| 2 | 3 | 1 | 0 | 0 | ..... |0 |
---------------------------------------
STORE_2| X | X | X | X | X | ..... |X |
一点点解释:标头中的数字1、2、3 ... 28表示2月中的DATE。 数字2,3,1,0 .... 0表示每个DATE的交易总数。我想要一个月内的报告。 Store_2表示将来是否有任何商店数据。
我的T-SQL如下所示(绝对错误)
select SUM(T_NUMBER) as 'Total'
from store_logs
group by cast(time as date)
非常感谢
答案 0 :(得分:3)
您可以使用PIVOT
运算符。
Sum of transactions per DATE
是否表示您希望每天交易次数COUNT
?如果是这种情况,请将SUM (T_NUMBER)
更改为COUNT (T_NUMBER)
SELECT *
FROM (
SELECT [STORE_ID], [DAY] = DATEPART (DAY , [DATETIME])
FROM store_logs
) AS D
PIVOT
(
SUM (T_NUMBER)
FOR DAY IN ([1], [2], [3], [4], [5], ... [31])
) AS P