none
sql数据库,数据表行列转换以及有条件选择整理的问题 RRS feed

  • 问题

  • 问题是这样的:vs2008用水晶报表做报表,有一个数据库中的表,我想把这个表的数据整理统计之后添加到创建的临时表,水晶报表调用临时表数据制成报表。

    数据库表大概是这样:

    日期                               数据

    2012年1月1日15时          1

    2012年1月1日16时          1

    2012年1月1日17时          2

    2012年1月2日8时            2

    。。。

    我想统计出来的临时表要这个效果:

    日期                             1                     2

    2012年1月1日              2(个)            1(个)

    2012年1月2日              0(个)            1(个)

    2012年1月3日

    。。。

    2012年1月31日             *                     *

    括号可以不要,这里写上括号只是表达下这个数的意义:统计出这个日期下,这个数据有多少个。

    现在问题是用什么方法把我要的数据弄出来,主要是日期怎么能选出来,后面数据好像可以用select count() from 来做(!!!发现count好像不行,有没有别的解决办法?)

    日期想要达到的效果就是上面那个样子。


    • 已编辑 Mclovin 2013年2月22日 3:00
    2013年2月21日 3:44

答案

  • 这个应该可以通过一条Sql语句,应该是比较典型的SQL行列转换的应用,可以参考我下面的示例:

    SELECT N'日期',
    	COUNT(CASE N'数据' WHEN '1' THEN 1 END) AS '1',
    	COUNT(CASE N'数据' WHEN '2' THEN 1 END) AS '2'
    FROM [yourTable]

    • 已标记为答案 Mclovin 2013年2月25日 7:54
    2013年2月21日 8:59

全部回复