首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

急工作用!解决思路

2012-03-08 
急,工作用!有一组数据,要按它们的性质统计容量表js所属柜线配变名称容量备注良环线A厂配变315专用良环线C

急,工作用!
有一组数据,要按它们的性质统计容量
表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 所属柜线--, 备注

/*
所属柜线公用专用
国基线0315
良环线700945
*/

[解决办法]
楼上正解。。。
[解决办法]
--测试

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


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 所属柜线--, 备注

热点排行