当前位置:编程学习 > C#/ASP.NET >>

水晶报表如何显示动态sql产生的动态列呀

create  table T1(tid int,sid varchar(10),color varchar(10))
insert into T1 values(1,'111111','黑')
insert into T1 values(2,'111111','灰')

insert into T1 values(3,'111112','红')
insert into T1 values(4,'111112','兰')

select * from T2

create  table T2 ( tid int,ssize varchar(4),num int)
insert into T2 values(1,'36',0)
insert into T2 values(1,'40',10)
insert into T2 values(1,'41',12)

insert into T2 values(2,'36',0)
insert into T2 values(2,'40',12)
insert into T2 values(2,'41',32)

insert into T2 values(3,'36',0)
insert into T2 values(3,'40',60)
insert into T2 values(3,'41',32)

insert into T2 values(4,'36',0)
insert into T2 values(4,'40',70)
insert into T2 values(4,'41',82)

--动态sql
declare @sql nvarchar(4000)
set @sql='select a.tid,a.sid,a.color '
select @sql=@sql+',sum(case when b.ssize='''+ssize+''' then b.num else 0 end) ['+ssize+']'
from (select distinct ssize from T2) t
exec (@sql+' from T1 a left outer join T2 b on a.tid=b.tid group by a.tid,a.sid,a.color')

--静态sql
select a.sid,a.color ,sum(case when b.ssize='36' then b.num else 0 end) [36],
sum(case when b.ssize='40' then b.num else 0 end) [40],
sum(case when b.ssize='41' then b.num else 0 end) [41]
from T1 a left outer join T2 b on a.tid=b.tid group by a.sid,a.color
order by a.sid


--存储过程
create  proc proc_1
as
declare @sql nvarchar(4000)
set @sql='select a.tid,a.sid,a.color '
select @sql=@sql+',sum(case when b.ssize='''+ssize+''' then b.num else 0 end) ['+ssize+']'
from (select distinct ssize from T2) t
exec (@sql+' from T1 a left outer join T2 b on a.tid=b.tid group by a.tid,a.sid,a.color')



在sql中可以查询,


但是在水晶报表中总是只能找到a.tid,a.sid,a.color三项,后面的统计数据都出不来,无法设计水晶报表了,怎么办? 
我就想在水晶报表中显示和sql的ssmsee中一样的结果即可,谢谢~!
--------------------编程问答-------------------- 参考:水晶报表动态表扩展 之 任意SQL及任意有关联表,任意列 及其他【推荐】 --------------------编程问答--------------------
引用楼主  的回复:
create table T1(tid int,sid varchar(10),color varchar(10))
insert into T1 values(1,'111111','黑')
insert into T1 values(2,'111111','灰')

insert into T1 values(3,'111112','红')
insert into T1 values……



我有个问题 想 请教 你 ,   看到 请加我915687633  谢谢
补充:.NET技术 ,  图表区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,