在SQL

时间:2015-05-12 15:23:48

标签: sql date sql-server-2012 pivot

我遇到了一个无法找到解决方案的问题。

我有一个桌子“卖”,所有商店的销售,我想显示每个产品每一天的销售量。

例如:

|       DATE |  NAME    | QTY |
|------------|----------|-----|
| 2014-07-03 |     Coca |   1 |
| 2014-07-03 |    Fanta |   1 |
| 2014-07-03 | Orangina |   5 |
| 2014-07-03 |     Coca |   3 |
| 2014-07-04 |     Coca |   2 |
| 2014-07-05 |     Coca |   4 |
| 2014-07-05 |    Fanta |   1 |
| 2014-07-05 |    Juice |   2 |

我想要的显示是:

    |       NAME | TOTAL  | 2014-07-03 |  2014-07-04 |  2014-07-05 |
    |------------|--------|------------|-------------|-------------|
    |      Coca  |   10   |         4  |          2  |          4  |
    |     Fanta  |    2   |         1  |          0  |          1  |
    |  Orangina  |    1   |         1  |          0  |          0  |
    |     Juice  |    1   |         0  |          0  |          1  |

用户将指定他想要显示的时间段,因此我必须使用BETWEEN函数作为日期。

我尝试使用PIVOT功能,但我仍然不熟悉使用它

编辑:我正在使用SQL Server 2012。

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:1)

Create table temp 
(
tdate date,
name varchar(10),
qty int
)

insert into temp values (getdate(),'A',10)

insert into temp values (getdate(),'B',20)

insert into temp values (getdate(),'C',20)
insert into temp values (getdate(),'A',20)
insert into temp values (getdate(),'B',30)
insert into temp values (getdate(),'C',40)
insert into temp values (getdate()+1,'A',20)
insert into temp values (getdate()+1,'B',30)
insert into temp values (getdate()+1,'C',40)




select * from 
( select tdate, name, qty
  from temp
) src
pivot (
  sum(qty)
  for tdate in ([2015-05-12],[2015-05-13])
) piv;

答案 1 :(得分:-1)

这不是诀窍吗?

-injars      build/install/HelloScala/lib/helloscala-1.0.jar
-injars      build/install/HelloScala/lib/scala-library-2.11.6.jar(!META-INF/MANIFEST.MF)
-outjars     helloscalapro.jar
-libraryjars <java.home>/lib/rt.jar

-dontwarn scala.**

//etc.

P.S:添加了条款