MS SQL 行转列的问题

zts107 2012-06-16 03:23:04
联合查询后得到如下下表:


Fbillno Finterid Fstatus Fitemid Fauxqty Fdate Fqty

WORK005525 6595 3 28086 100.0000000000 2012-05 100.0000000000
WORK005526 6602 3 28090 300.0000000000 2012-05 174.0000000000
WORK005526 6602 3 28090 300.0000000000 2012-06 126.0000000000


Fdate字段是变动的,我想得到如下结果:
请教如何实现,谢谢!

Fbillno Finterid Fstatus Fitemid Fauxqty 2012-05 2012-06 Fqty

WORK005525 6595 3 28086 100.0000000000 100 0 100
WORK005526 6602 3 28090 300.0000000000 174 126 300
...全文
114 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
owenwoshiawp 2012-06-16
  • 打赏
  • 举报
回复
select fbillno,finterid,fstatus,fitemid,fauxqty,
max(case when fdate='2012-05'then fqty else 0 end)[2012-05],
max(case when fdate='2012-06'then fqty else 0 end)[2012-06],
sum(fqty)[fqty]
from test group by fbillno,finterid,fstatus,fitemid,fauxqty
  • 打赏
  • 举报
回复

--> 测试数据:[test]
if object_id('[test]') is not null
drop table [test]
create table [test](
[Fbillno] varchar(10),
[Finterid] int,
[Fstatus] int,
[Fitemid] int,
[Fauxqty] numeric(13,10),
[Fdate] varchar(7),
[Fqty] numeric(5,2)
)
go
insert [test]
select 'WORK005525',6595,3,28086,100.0000000000,'2012-05',100.00 union all
select 'WORK005526',6602,3,28090,300.0000000000,'2012-05',174.00 union all
select 'WORK005526',6602,3,28090,300.0000000000,'2012-06',126.00

declare @str varchar(2000)
set @str=''
select
@str=@str+',['+[Fdate]
+']=max(case when [Fdate]='
+quotename([Fdate],'''')+' then [Fqty] else 0 end)'
from
test
group by
[Fdate]
print @str
set @str='select Fbillno,Finterid,Fstatus,Fitemid,Fauxqty'
+@str+',sum(Fqty) as Fqty from test
group by Fbillno,Finterid,Fstatus,Fitemid,Fauxqty'
exec(@str)
/*
Fbillno Finterid Fstatus Fitemid Fauxqty 2012-05 2012-06 Fqty
------------------------------------------------------------------------------
WORK005525 6595 3 28086 100.0000000000 100.00 0.00 100.00
WORK005526 6602 3 28090 300.0000000000 174.00 126.00 300.00
*/
發糞塗牆 2012-06-16
  • 打赏
  • 举报
回复
http://blog.csdn.net/dba_huangzj/article/details/7530928我总结了一下例子,看看能不能帮上忙
shuobudeDE 2012-06-16
  • 打赏
  • 举报
回复
http://wenku.baidu.com/view/66ff110ef78a6529647d530c.html

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧