日期:2014-05-18  浏览次数:20563 次

求sql语句(sqlserver 2000)
原表数据:
bh     xm gzbh   gzmc   ggbh   gg             dj         cl
123   丽丽   a         主机     1       9.00-20       0.36     22
123   丽丽   a         主机     1       9.00-20       0.36     80
456   峰       a         主机     1       9.00-20       0.36     85
456   峰       a         主机     2       10.00-20       2.3     50
456   峰       a         主机     2       10.00-20       2.3     40
456   峰       b         付机     1       9.00-20       0.28     33
456   峰       b         付机     2       10.00-20       2.5     80
 
要查出的结果:
123   丽丽   a       主机       1       9.00-20       0.36     102
456   峰       a       主机       1       9.00-20       0.36     85 2   10.00-20       2.3 90
456   峰       b       付机       1       9.00-20       0.28     33 2   10.00-20       2.5 80


------解决方案--------------------
create table #(bh int,xm varchar(10),gzbh varchar(5),gzmc varchar(10),ggbh int,gg varchar(15),dj varchar(10),cl int)
insert # select
123, '丽丽 ', 'a ', '主机 ',1, '9.00-20 ', '0.36 ',22 union all select
123, '丽丽 ', 'a ', '主机 ',1, '9.00-20 ', '0.36 ',80 union all select
456, '峰 ', 'a ', '主机 ',1, '9.00-20 ', '0.36 ',85 union all select
456 , '峰 ', 'a ', '主机 ',2, '10.00-20 ', '2.3 ',50 union all select
456 , '峰 ', 'a ', '主机 ',2, '10.00-20 ', '2.3 ',40 union all select
456 , '峰 ', 'b ', '付机 ',1, '9.00-20 ', '0.28 ',33 union all select
456 , '峰 ', 'b ', '付机 ',2, '10.00-20 ', '2.5 ',80


select a.*,isnull(b.ggbh, ' '),isnull(b.gg, ' '),isnull(b.dj, ' '),isnull(b.[sum], ' ') from
(select bh,xm,gzbh,gzmc,ggbh,gg,dj,sum(cl) as [sum] from # where ggbh=1 group by bh,xm,gzbh,gzmc,ggbh,gg,dj) a left join
(select bh,xm,gzbh,gzmc,ggbh,gg,dj,sum(cl) as [sum] from # where ggbh=2 group by bh,xm,gzbh,gzmc,ggbh,gg,dj) b on a.bh=b.bh and a.gzbh=b.gzbh

drop table #
------解决方案--------------------
create table #(bh int,xm varchar(10),gzbh varchar(5),gzmc varchar(10),ggbh int,gg varchar(15),dj varchar(10),cl int)
insert # select
123, '丽丽 ', 'a ', '主机 ',1, '9.00-20 ', '0.36 ',22 union all select
123, '丽丽 ', 'a ', '主机 ',1, '9.00-20 ', '0.36 ',80 union all select
456, '峰 ', 'a ', '主机 ',1, '9.00-20 ', '0.36 ',