none
一个稍为复杂一点的SQL问题,请高手帮忙看看^_^ RRS feed

  • 问题

  • 表table1 每个字段都是字符串类型的
     time   ds cn
    20080901  天津 t1
    20091010  北京 t2
    20100908  武汉 t3
    20080930  辽宁 t4
    20070906  天津 t5
    20080914  辽宁   t6

    以上字段都是字符串类型的^_^,日期精确到日,实际统计的时候精确到月就可以;地区只有天津、武汉、北京、辽宁这四个

    希望用SQL2000实现目的如下:
    统计出同一年同一月份中的每个地区所拥有的客户数量,并将查询结果存储到同一个excel文件中的不同名字的工作表中。

    例:
    最后能统计出来上表中200809这个时期辽宁地区有2个客户 天津有一个客户,其他各时期均只一个客户
    那么最终在excel中200809这个名称的工作表中就应该有如下表内容
    num   ds
     2   辽宁
     1   天津
     0   北京
     0   武汉
    (由于地区只有四个,所以要按照以上的顺序从上到下排表)

    注:由于数据量比较复杂,从2007~2010每个月都会有客户信息,所以我希望能让程序自动添加每个工作表的名称,比如上面的200809这个标签就是通过在SQL中检索time的200809值来命名的

    描述的可能比较乱,哪位高手帮忙解决一下,实际的数据量比较大,所以希望能有个快捷的查询语句。
    先谢谢了^_^

    2008年11月13日 6:37

答案

  • 自己解决了

    select time1 [日期],
    sum(case ds when N'天津' then 1 else 0 end) [天津],
    sum(case ds when N'北京' then 1 else 0 end) [北京],
    sum(case ds when N'武汉' then 1 else 0 end) [武汉],
    sum(case ds when N'武汉' then 1 else 0 end) [辽宁]
    from table1
    group by time1

     

     

    2008年11月13日 7:22