日期:2014-05-17  浏览次数:20491 次

???求高手帮忙,如何完成下面SQL语句???
传入参数diqu,niandu,

表T1
diqu  jine1  jine2  riqi         flag
北京   100    50     2010-01-10    1
北京   100    30     2010-05-10    1
上海    80    10     2010-01-10    1
上海   200    80     2010-05-10    0
上海    40    20     2010-07-10    1
北京    70    30     2011-01-10    1

如给定diqu参数为全部,niandu参数为2009, 2010, 2011 则统计结果如下:
其中jine1为flag=1的该年度jine1的总和,jine2也相同,1月~12月指此年度该月jine1的合计数,月以riqi判断

diqu  niandu jine1  jine2   1月 2月 3月  4月  5月 6月  7月  8月 9月 10月 11月 12月
全部  2009     0        0    0   0   0   0    0   0   0    0  0   0    0    0
全部  2010    320     110   180  0   0   0  100   0   40   0  0   0    0    0
全部  2011     70      30    70  0   0   0    0   0   0    0  0   0    0    0

如给定diqu参数为北京,niandu参数为2009, 2010, 2011 则统计结果如下:

diqu  niandu jine1  jine2   1月 2月 3月  4月  5月 6月  7月  8月 9月 10月 11月 12月
北京  2009     0        0    0   0   0   0    0   0   0    0  0   0    0    0
北京  2010    200      80   100  0   0   0  100   0   0    0  0   0    0    0
北京  2011     70      30    70  0   0   0    0   0   0    0  0   0    0    0

请问如何根据传入参数,类似(2009,2010,2011; 全部)自动生成上表?
------最佳解决方案--------------------
create table #A(diqu varchar(20),jine1 int,jine2 int ,riqi date,flag int)
insert into #A
select '北京',100,50,'2010-01-10',1 union all select
'北京',   100 ,   30  ,'2