日期:2014-05-18 浏览次数:20506 次
--sql 2000
select isnull(m.项目名称,n.项目名称) 项目名称,
m.概算类型 ,
m.概算名称 ,
m.概算金额 ,
n.合同类型 ,
n.合同编号 ,
n.合同名称 ,
n.合同金额
from
(select t.* , px = (select count(1) from t1 where 项目名称 = t.项目名称 and 概算类型 < t.概算类型) + 1 from t1 t) m
full join
(select t.* , px = (select count(1) from t2 where 项目名称 = t.项目名称 and 概算类型 < t.概算类型) + 1 from t2 t) n
on m.项目名称 = n.项目名称 and m.px = n.px
------解决方案--------------------
--> 测试数据:[tbl1]
if object_id('[tbl1]') is not null drop table [tbl1]
create table [tbl1]([项目名称] varchar(8),[概算类型] varchar(8),[概算名称] int,[概算金额] int)
insert [tbl1]
select '中三改造','工程概算',121,80 union all
select '中三改造','征地拆迁',565,50
--> 测试数据:[tbl2]
if object_id('[tbl2]') is not null drop table [tbl2]
create table [tbl2](
[项目名称] varchar(8),
[合同类型] varchar(8),
[合同编号] int,
[合同名称] varchar(4),
[合同金额] int
)
insert [tbl2]
select '中三改造','建设合同',1212,'城投',100 union all
select '中三改造','建设合同',45,'4545',20
select a.项目名称,a.概算类型,a.概算名称,a.概算金额,
b.合同类型,b.合同编号,b.合同名称,b.合同金额 from(
select ROW_NUMBER()over(order by getdate()) as id,* from [tbl1])a
inner join(
select ROW_NUMBER()over(order by getdate()) as id,* from [tbl2])b
on a.项目名称=b.项目名称 and a.id=b.id
/*
项目名称 概算类型 概算名称 概算金额 合同类型 合同编号 合同名称 合同金额
中三改造 工程概算 121 80 建设合同 1212 城投 100
中三改造 征地拆迁 565 50 建设合同 45 4545 20
*/
------解决方案--------------------