有表sbxx,内容如下:sbh               sbrq          je
10001             20030104       1
10001             20030206       -343
10001             20030630        32
10001                .
                     .
10001             20031231        5523
10001             20040101        2
10002             20030201        434
                     .
                     .
10002             20031201         434  .                  .
      
  .                  .怎样写sql语句,变为:sbh      nianfen     yiyue   eryue  sanyue siyue wuyue  liuyue .......shieryue
10001    2003           1      0     0      0     0       32             5523     
10001    2004           2      0     0      0     0       0   0..........0
10002    2003           0      0     0      0 ............................434
  .        .
  .        .          
  .        .谢谢!

解决方案 »

  1.   

    十二句sql用union all 联起来不就行了  如:
    select sbh,nianfen,sum(yiyue),sum(eryue)..... from (
    select sbh,substr(sbrq,1,4) nianfen,substr(sbrq,5,2) yiyue, 0 eryue,0 sanyue,0 siyue ...... 0 shieryue from sbxx where substr(yiyue,5,2) = '01'
    union all 
    select sbh,substr(sbrq,1,4) nianfen,0 yiyue, substr(sbrq,5,2) eryue,0 sanyue,0 siyue ...... 0 shieryue from sbxx where substr(yiyue,5,2) = '02'
    union all
    ......) t group by sbh,nianfen 
    大概就是这样吧
      

  2.   

    十二句sql用union all 联起来不就行了  如:
    select sbh,nianfen,sum(yiyue),sum(eryue)..... from (
    select sbh,substr(sbrq,1,4) nianfen,substr(sbrq,5,2) yiyue, 0 eryue,0 sanyue,0 siyue ...... 0 shieryue from sbxx where substr(sbrq,5,2) = '01'
    union all 
    select sbh,substr(sbrq,1,4) nianfen,0 yiyue, substr(sbrq,5,2) eryue,0 sanyue,0 siyue ...... 0 shieryue from sbxx where substr(sbrq,5,2) = '02'
    union all
    ......) t group by sbh,nianfen 
    大概就是这样吧