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

急,工作用!
有一组数据,要按它们的性质统计容量
表js

所属柜线         配变名称         容量         备注
良环线             A厂配变           315           专用
良环线             C厂配变           500           公用
良环线             E厂配变           630           专用
良环线             D厂配变           200           公用
国基线             H配变               315           专用
我现在要按线路和公专变(备注)统计容量,要得到如下形式的表格
表tj

良环线     公用     700       专用     945
国基线     公用       0         专用     315  
我曾用group   by   所属柜线,备注,但是只能得到下面的结果
良环线     公用     700
良环线     专用     945
国基线     公用     0
国基线     专用     315
但这用形式不能满足工作的要求,必须要得到表tj的形式!望各位大侠相助,不胜感激!
   


------解决方案--------------------
select 所属柜线, 公用 = sum(case 备注 when '公用 ' then 容量 else 0 end), 专用 = sum(case 备注 when '专用 ' then 容量 else 0 end) from js group by 所属柜线

------解决方案--------------------
--测试

declare @Test table(所属柜线 varchar(255),配变名称 varchar(255),容量 varchar(255),备注 varchar(255))
insert @Test
select '良环线 ', 'A厂配变 ', '315 ', '专用 ' union all
select '良环线 ', 'C厂配变 ', '500 ', '公用 ' union all
select '良环线 ', 'E厂配变 ', '630 ', '专用 ' union all
select '良环线 ', 'D厂配变 ', '200 ', '公用 ' union all
select '国基线 ', 'H配变 ', '315 ', '专用 '

select 所属柜线, 公用 = sum(case 备注 when '公用 ' then 容量 else 0 end), 专用 = sum(case 备注 when '专用 ' then 容量 else 0 end) from @test group by 所属柜线--, 备注

/*
所属柜线 公用 专用
国基线 0 315
良环线 700 945
*/

------解决方案--------------------
楼上正解。。。
------解决方案--------------------
--测试

declare @Test table(所属柜线 varchar(255),配变名称 varchar(255),容量 varchar(255),备注 varchar(255))
insert @Test
select '良环线 ', 'A厂配变 ', '315 ', '专用 ' union all
select '良环线 ', 'C厂配变 ', '500 ', '公用 ' union all
select '良环线 ', 'E厂配变 ', '630 ', '专用 ' union all
select '良环线 ', 'D厂配变 ', '200 ', '公用 ' union all
select '国基线 ', 'H配变 ', '315 ', '专用 '

select 所属柜线, 公用总数量 = sum(case 备注 when '公用 ' then 1 else 0 end), 公用 = sum(case 备注 when '公用 ' then 容量 else 0 end), 专用总数量 = sum(case 备注 when '专用 ' then 1 else 0 end), 专用 = sum(case 备注 when '专用 ' then 容量 else 0 end) from @test group by 所属柜线--, 备注

------解决方案--------------------
这次是你需要的

declare @Test table(所属柜线 varchar(255),配变名称 varchar(255),容量 varchar(255),备注 varchar(255))
insert @Test
select '良环线 ', 'A厂配变 ', '315 ', '专用 ' union all