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