
上面的表我想查询出来:“如果费用类型=‘0’,按成本对象相同的分组、求和;如果费用类型不等于‘0’,按成本对象相同,费用编码相同的分组,两个条件取出来的数据放到一张表上展现出来”,本人新手,实在是想不出来了。。往各路大神不吝赐教,小弟感激不尽!!!
------解决思路----------------------
select 成本对象, null as 费用编码 from 表格
Where费用类型=‘0’
Group by成本对象
Union
select 成本对象, 费用编码 from 表格
Where费用类型<>‘0’
Group by成本对象, 费用编码
------解决思路----------------------
Create Table 表格
(
费用类型 int,
成本对象 Varchar(10),
费用编码 Varchar(10),
完工金额 int
)
insert into 表格 values(0,1,1,10)
insert into 表格 values(0,2,1,20)
insert into 表格 values(0,1,2,30)
insert into 表格 values(0,2,2,40)
insert into 表格 values(1,5,3,10)
insert into 表格 values(1,6,3,20)
insert into 表格 values(1,5,4,30)
insert into 表格 values(1,6,4,40)
Select 费用类型,Case When 费用类型='0' Then 成本对象 Else 费用编码 End As 分组,
SUM(完工金额) As 合计
From 表格
Group By 费用类型,Case When 费用类型='0' Then 成本对象 Else 费用编码 End