收藏的别人的例子,你参考一下吧^_^create table #tmp(ITEM_NO varchar(40) null, MONTH2 int null, QTY_PLAN int null) insert into #tmp select 'A_001',1, 10 union all select 'A_001',2 ,10 union all select 'A_001',3,10 union all select 'A_001',4 ,10 union all select 'A_002',1 ,20 union all select 'A_002',2 ,40 union all select 'A_002',3 ,20 union all select 'A_002',4 ,30
declare @sql varchar(8000)
Set @sql = 'Select ITEM_NO ' Select @sql = @sql + ',Sum(Case MONTH2 When '''+cast(MONTH2 as varchar(30))+''' Then QTY_PLAN end) ['+Cast(MONTH2 as varchar(30))+'月]' From (Select top 100 percent MONTH2 From #tmp Group BY MONTH2 ) As a set @sql=@sql+' From #tmp Group By ITEM_NO' exec (@sql) drop table #tmp
如果想在SQL中看下面的例子
http://www.jcdao.com/article/bcsl/45759.shtml
http://www.cnblogs.com/star250/archive/2007/06/13/782522.html否则的话你先把数据源拿出来然后动态添加数据到DataGridView
显示的要求好象没碰到过
MONTH2 int null,
QTY_PLAN int null)
insert into #tmp
select 'A_001',1, 10
union all
select 'A_001',2 ,10
union all
select 'A_001',3,10
union all
select 'A_001',4 ,10
union all
select 'A_002',1 ,20
union all
select 'A_002',2 ,40
union all
select 'A_002',3 ,20
union all
select 'A_002',4 ,30
declare @sql varchar(8000)
Set @sql = 'Select ITEM_NO '
Select @sql = @sql + ',Sum(Case MONTH2 When '''+cast(MONTH2 as varchar(30))+''' Then QTY_PLAN end) ['+Cast(MONTH2 as varchar(30))+'月]'
From (Select top 100 percent MONTH2 From #tmp Group BY MONTH2 ) As a
set @sql=@sql+' From #tmp Group By ITEM_NO'
exec (@sql)
drop table #tmp
同意,其实就是用 Case