| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 979 人关注过本帖
标题:求SQL语句
只看楼主 加入收藏
linghe302
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-12-10
收藏
 问题点数:0 回复次数:2 
求SQL语句
No      Area   Kind
123     10     
123     20     
123     30     

求一条SQL语句

转变成

No                 

123   10     20     30

多谢!
搜索更多相关主题的帖子: SQL 语句 
2007-12-10 15:51
q123126
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-6-10
收藏
得分:0 
select No,
大=sum(case when f=1 then Area else 0 end),
中=sum(case when f=2 then Area else 0 end),
小=sum(case when f=3 then Area else 0 end)
(select No,Area,Kind from Table where Kind='大',1 as f
from Table
union all
select No,Area,Kind from Table where Kind='中',2 as f
from Table
union all
select No,Area,Kind from Table where Kind='小',3 as f
from Table)a
group by No,Area,Kind
Order By No
随手写的,调试看看

[[italic] 本帖最后由 q123126 于 2007-12-10 17:43 编辑 [/italic]]
2007-12-10 17:38
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
declare @t table(No char(3),Area int,Kind nchar(1))
insert @t select '123',10,N'大'
insert @t select '123',20,N'中'
insert @t select '123',30,N'小'

select No,max(case when Kind=N'大' then Area end) as [大],
          max(case when Kind=N'中' then Area end) as [中],
          max(case when Kind=N'小' then Area end) as [小]
from @t
group by No

/*
No                                    
---- ----------- ----------- -----------
123  10          20          30

(所影响的行数为 1 行)

*/

我的msn: myfend@
2007-12-10 17:49
快速回复:求SQL语句
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.084507 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved