表结构:ID Code Category Month Rate
1 0001  A   1    92
2 0001  A        2  93
3 0001  B   3  94
4 0002  B   1      91
5 0002  A        3  97
6 0002  B        4  92结果如下:如何得到如下结果:
Month     A_Num      A_Rate     B_Num        B_Rate 
1    1                92         1             91 
2         1                93       0             0
1-2       1                92.5       1             91  
3         1                97         1             94
1-3       2                94         2             92.5              
1季度     2                94         2             92.5    
4         0                0          1             92      
1-4       2                94         2             92.3 
5   0                0          0             0  
1-5       2                94         2             92.3 
6         0                0          0             0
1-6       2                94         2             92.3 
2季度     0                0          1             92  
7         0                0          0             0 
1-7       2                94         2             92.3 
8         0                0          0             0 
1-8       2                94         2             92.3 
9   0                0          0             0 
1-9       2                94         2             92.3 
3季度     0                0          0             0 
10        0                0          0             0 
1-10      2                94         2             92.3 
11        0                0          0             0 
1-11      2                94         2             92.3 
12        0                0          0             0 
1-12      2                94         2             92.3 
4季度     0                0          0             0 
Total     2                94         2             92.3   
Month固定是12个月,输出格式如上也是固定的,如果表里面没有对应月份数据,记作0,这个SQL语句怎么写?

解决方案 »

  1.   

    一定要用SQL写吗?我觉得用程序去完成比较好.
    用个循环,把统计出来的数据逐一插入这个表.
      

  2.   

    偶也表示看不太懂这个报表
    楼主 code 字段 没用吗?用到的大概有:行转列、聚合、累计聚合再捯饬下排序明天抽时间写下SQL
      

  3.   

    这个用SQL实现太难了
    因为需要依次求平均
      

  4.   

    恩,就是需要用SQL去写,的确比较麻烦,我之前的想法是先一个查询按每月1行输出
    然后另一个查询 按1月到每月的累计作为1行输出 但是这个查询也没有想到什么好办法
      

  5.   

    报表需要一个查询SQL作为输入
      

  6.   

    sql实现比较困难,最好用程序实现。
      

  7.   

    参阅ROLLUP 汇总对你可能有帮助
      

  8.   

    恩,分别作了三次统计,然后union all