现在使用SQL组合查询结果如下
----------------------------------------------
部门ID 费用A 费用B 费用C 费用D 费用E
1 0 1.2 2.4 2.5 0
2 10 20 30 0 0
3 2 5 0 5 0
4 0.2 0 2.4 2 5.5
。。
。。
-----------------------------------------------
客户的要求的结果是这样
----------------------------------------------
部门ID 费用A 费用B 费用C 其他费用
1 0 1.2 2.4 2.5
2 10 20 30 0
3 2 5 0 5
其他部门 x x x x
--------------------------------------------------
就是说在第一查询结果中只显示部分费用列和部分部门行,不显示的费用合计到其他费用,不显示的部门按列合计到其他部门中不知道SQL如何来做出来?请教大家
----------------------------------------------
部门ID 费用A 费用B 费用C 费用D 费用E
1 0 1.2 2.4 2.5 0
2 10 20 30 0 0
3 2 5 0 5 0
4 0.2 0 2.4 2 5.5
。。
。。
-----------------------------------------------
客户的要求的结果是这样
----------------------------------------------
部门ID 费用A 费用B 费用C 其他费用
1 0 1.2 2.4 2.5
2 10 20 30 0
3 2 5 0 5
其他部门 x x x x
--------------------------------------------------
就是说在第一查询结果中只显示部分费用列和部分部门行,不显示的费用合计到其他费用,不显示的部门按列合计到其他部门中不知道SQL如何来做出来?请教大家
from ta where id < 4
union all
select '其他部门' as id ,sum().....
from ta where id >3
FROM TB
WHERE 部门ID IN(1,2,3,4)
UNION ALL
SELECT '其他部门',SUM(费用A),SUM(费用B),SUM(费用C),SUM(费用D+费用E)
FROM TB
WHERE 部门ID NOT IN(1,2,3,4)
set @s= 'Select [Depart_ID] 部门ID, [Depart_Name] 部门名称'
select @s=@s+ ','+'IsNull(['+XMMC_Name+'], 0) ['+XMMC_Name+']'
From [Sol_XMMC] order By [XMMC_ID] asc
set @s=@s+ ' From [Sol_Depart] A Left join ( '
set @s=@s+ ' Select B.[SHDW_ID]' select @s=@s+ ','+'['+XMMC_Name+']=(sum(case when Wt_XMMC = '''+ltrim([XMMC_Name])+''' then [Wts_Money] else 0 end))'
From [Sol_XMMC] order By [XMMC_ID] asc
set @s=@s+ ' From Sol_Wt A left join Sol_Wts B on A.Wt_ID = B.Wt_ID Where A.[Wt_IsZF]=0 and [Wt_IsXZ] = 1 group by B.[SHDW_ID] '
set @s=@s+ ')B on A.[Depart_ID]=B.[SHDW_ID] Where A.[Depart_IsOut] = 0 Order By [Depart_OrderID] asc'
exec(@s)