当前位置: 代码迷 >> Sql Server >> 这个SQL 语句如何写,真的不会
  详细解决方案

这个SQL 语句如何写,真的不会

热度:26   发布时间:2016-04-27 15:16:38.0
这个SQL 语句怎么写,真的不会啊
select T1,T2,count(*) as 战败总数 from Table1 group by T1,T2

我想把其中的一列变成行怎么写这个SQL啊

------解决方案--------------------
SQL code
select T1,sum(case when T2='中国队' 1 else 0 end) 中国队战败总数 ,sum(case when T2='日本队' 1 else 0 end) 日本队战败总数 from Table1 group by T1
------解决方案--------------------
SQL code
--行列互转/******************************************************************************************************************************************************以学生成绩为例子,比较形象易懂整理人:中国风(Roy)日期:2008.06.06******************************************************************************************************************************************************/--1、行互列--> --> (Roy)生成測試數據 if not object_id('Class') is null    drop table ClassGoCreate table Class([Student] nvarchar(2),[Course] nvarchar(2),[Score] int)Insert Classselect N'张三',N'语文',78 union allselect N'张三',N'数学',87 union allselect N'张三',N'英语',82 union allselect N'张三',N'物理',90 union allselect N'李四',N'语文',65 union allselect N'李四',N'数学',77 union allselect N'李四',N'英语',65 union allselect N'李四',N'物理',85 Go--2000方法:动态:declare @s nvarchar(4000)set @s=''Select     @[email protected]+','+quotename([Course])+'=max(case when [Course]='+quotename([Course],'''')+' then [Score] else 0 end)'from Class group by[Course]exec('select [Student][email protected]+' from Class group by [Student]')生成静态:select     [Student],    [数学]=max(case when [Course]='数学' then [Score] else 0 end),    [物理]=max(case when [Course]='物理' then [Score] else 0 end),    [英语]=max(case when [Course]='英语' then [Score] else 0 end),    [语文]=max(case when [Course]='语文' then [Score] else 0 end) from     Class group by [Student]GO动态:declare @s nvarchar(4000)Select     @s=isnull(@s+',','')+quotename([Course]) from Class group by[Course]exec('select * from Class pivot (max([Score]) for [Course] in([email protected]+'))b')生成静态:select * from     Class pivot     (max([Score]) for [Course] in([数学],[物理],[英语],[语文]))b生成格式:/*Student 数学          物理          英语          语文------- ----------- ----------- ----------- -----------李四      77          85          65          65张三      87          90          82          78(2 行受影响)*/
------解决方案--------------------
探讨
select T1,T2,count(*) as 战败总数 from Table1 group by T1,T2

我想把其中的一列变成行怎么写这个SQL啊
  相关解决方案