有一個表T1
項次 站別 數量
1 A1 3
1 B1 2
2 B1 5
3 C1 6
4 D1 4
5 A1 7
如何用存儲過程實現得到如下結果
項次 A1 B1 C1 D1
1 3 2
2 5
3 6
4 4
5 7
注意:在結果中A1,B1,C1,D1和項次一樣都是字段名
項次 站別 數量
1 A1 3
1 B1 2
2 B1 5
3 C1 6
4 D1 4
5 A1 7
如何用存儲過程實現得到如下結果
項次 A1 B1 C1 D1
1 3 2
2 5
3 6
4 4
5 7
注意:在結果中A1,B1,C1,D1和項次一樣都是字段名
解决方案 »
- 如何读取数码照片的EXIF,并把时间和日期写到照片上
- 如何设置form2永远在form1窗体上面
- 请教
- MDI左边怎么加面板??谢谢,高分相送
- 帮帮忙啊,各位大侠
- 各位高手 请教dhtmledit控件的用法 能否提供文档说明 谢谢(msdn下没有)
- 关于编译的问题
- 谁能讲讲vb的package&deployment的一些原理,比如,他会自动假如那些文件,安装的时候安装到什么位置,出现文件同名冲突的时候怎么去解决
- 一个刚开张的论坛 www.flashmv.net
- Client调用DCOM,DCOM再调用COM+
- 我现在想学编一个播放器,开头有这一段代码,请大哥们帮我解释一下什么意思
- 怎么确定点击的MSHFLEXGRID控件是点击哪行
A1=(case 站別 when A1 then 數量 else null end),
B1=(case 站別 when B1 then 數量 else null end),
C1=(case 站別 when C1 then 數量 else null end),
D1=(case 站別 when D1 then 數量 else null end)
FROM 表T1
union select 1,N'B1',2
union select 2,N'B1',5
union select 3,N'C1',6
union select 4,N'D1',4
union select 5,N'A1',7) aselect * from tmpABCdeclare @StrCol2 nvarchar(1000)
declare @StrSql nvarchar(1000)
declare @Col2 nvarchar(10)
set @StrCol2=''
set @StrSql=''
declare cursor_out cursor local for Select distinct 站别 from tmpABC
open cursor_out
fetch next from cursor_out into @Col2
while @@fetch_status=0
begin
set @StrCol2=@StrCol2 + ' , (case when 站别= ''' + @Col2 + ''' then 数量 else null end) as ' + @Col2
fetch next from cursor_out into @Col2
end
CLOSE cursor_out
DEALLOCATE cursor_out
set @StrSql='Select 项次' + @StrCol2 + ' from tmpABC'exec(@StrSql)drop table tmpABC
http://dev.csdn.net/develop/article/18/18622.shtm
不过用存储过程没试过。
1.select distinct 项次 from (select 項次,站別,sum(數量) as 数量
from ...
group by 項次,站別 ) group by 項次
2.select distinct 站別 from (select 項次,站別,sum(數量) as 数量
from ...
group by 項次,站別 ) group by 站別
3.select 項次,站別,sum(數量) as 数量
from ...
group by 項次,站別
然后再判断项次,站别,依次写出来就可以了。