日期:2014-05-18 浏览次数:20633 次
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)