年份 季度 金额
1991 1 15
1993 2 18
1991 3 20
1991 4 16
1992 1 22
1992 2 15写出SQL语句生成以下显示方式年份 1季度 2季度 3季度 4季度
1991 15 18 20 16
1992 20 15 0 0
1991 1 15
1993 2 18
1991 3 20
1991 4 16
1992 1 22
1992 2 15写出SQL语句生成以下显示方式年份 1季度 2季度 3季度 4季度
1991 15 18 20 16
1992 20 15 0 0
解决方案 »
- 求助:数据的树型查找方法
- 难题啊,如何过滤某个字段重复的记录,并且随即保留一条呢?
- 组合查询问题求助
- 一个菜鸟的问题:iis中如何配置SQL XML支持?
- 行列轉換 我怎么測試通不過呢
- 求高效sql写法,简单3库查询
- 关于sqlserver7.0的问题 在线等待
- sql server的数据库文件存在c盘,我想转到d:盘请问如何转换路径?
- 我将sql anywhere中表导入sql server,表中含有long binary类型导入sql server后,在sqlserver中long binary类型的字段全为空,为什么???
- 巨难SQL语句写法
- 查询数据库表中后N条 记录信息 sql语句怎么写 ?
- 求助个问题...关于表相互导入!
年份,
SUM(CASE WHEN 季度=1 THEN 金额 ELSE 0 END) AS 季度1,
SUM(CASE WHEN 季度=2 THEN 金额 ELSE 0 END) AS 季度2,
SUM(CASE WHEN 季度=3 THEN 金额 ELSE 0 END) AS 季度3,
SUM(CASE WHEN 季度=4 THEN 金额 ELSE 0 END) AS 季度4
FROM tb
GROUP BY 年份
-- -----------t_mac 小编-------------
---希望有天成为大虾----
-- =========================================IF OBJECT_ID('tb') IS NOT NULL
DROP TABLE tb
GO
CREATE TABLE tb(a int,jidu int,jine int)
go
insert into tb
select
1991, 1 ,15 union all select
1991 ,2 ,18 union all select
1991 ,3 ,20 union all select
1991, 4, 16 union all select
1992 ,1 ,22 union all select
1992 ,2 ,15
go
select a as 年份,[1季度]=isnull([1],0), [2季度]=isnull([2],0),[3季度]=isnull([3],0),[4季度]=isnull([4],0)
from tb
pivot(
max(jine) for jidu in([1],[2],[3],[4])
)p
/*------------
(6 行受影响)
年份 1季度 2季度 3季度 4季度
----------- ----------- ----------- ----------- -----------
1991 15 18 20 16
1992 22 15 0 0(2 行受影响)
-------*/
drop table tb
go
create table tb (年份 int,季度 int,金额 int)
insert into tb select 1991,1,15
union all select 1993,2,18
union all select 1991,3,20
union all select 1991,4,16
union all select 1992,1,22
union all select 1992,2,15
declare @str nvarchar(1000)
set @str=''
select @str=@str+ ' , max(case when 季度 = '+cast(季度 as varchar(10)) + ' then 金额 end) [季度 '
+cast(季度 as varchar(10)) + ']' from
(select distinct 季度 from tb) tb
select @str = ' select 年份 ' + @str + ' from tb group by 年份'
exec (@str)(6 行受影响)
年份 季度 1 季度 2 季度 3 季度 4
----------- ----------- ----------- ----------- -----------
1991 15 NULL 20 16
1992 22 15 NULL NULL
1993 NULL 18 NULL NULL