日期:2014-05-18 浏览次数:20746 次
with
t1 as
(select '中三改造' 项目名称, '工程概算' 概算类型, '121' 概算名称, 80 概算金额),
t2 as
(select '中三改造' 项目名称, '建设合同' 合同类型, '1212' 合同编号,'城投' 合同名称,100 合同金额
union all
select '中三改造', '建设合同', '45', '4545', 20),
t3 as
(select row_number() over(partition by t1.项目名称 order by getdate()) rn,
t1.项目名称, t1.概算类型, t1.概算名称, cast(t1.概算金额 as varchar) 概算金额,
t2.合同类型, t2.合同编号, t2.合同名称, t2.合同金额
from t1 inner join t2 on t1.项目名称=t2.项目名称),
t4 as
(select
case when rn>1 then '' else 项目名称 end '项目名称',
case when rn>1 then '' else 概算类型 end '概算类型',
case when rn>1 then '' else 概算名称 end '概算名称',
case when rn>1 then '' else 概算金额 end '概算金额',
合同类型,合同编号,合同名称,合同金额 from t3)
select * from t4
union all
select '','','小计:',cast(sum(case when rn=1 then cast(概算金额 as int) else 0 end) as varchar),
'','','',sum(cast(合同金额 as int)) from t3 group by 项目名称
union all
select '','','合计:',cast(sum(case when rn=1 then cast(概算金额 as int) else 0 end) as varchar),
'','','',sum(cast(合同金额 as int)) from t3
项目名称 概算类型 概算名称 概算金额 合同类型 合同编号 合同名称 合同金额
-------- -------- ----- ------------------------------ -------- ---- ---- -----------
中三改造 工程概算 121 80 建设合同 1212 城投 100
建设合同 45 4545 20
小计: 80 120
合计: 80 120
(4 row(s) affected)