--测试数据
CREATE TABLE T1(T_NO VARCHAR(10),VN VARCHAR(10),PRICE DECIMAL(10,2),CREATETIME datetime default getdate());
CREATE TABLE T2(G_NO VARCHAR(10),VN VARCHAR(10),CREATETIME datetime);
 
insert into t1 values ( 'T001','A000001',1201,getdate()) ;
insert into t2 values ('G001','A000001',getdate());
insert into t1 values ( 'T002','A000001',1202,getdate()) ;
insert into t2 values ('G002','A000001',getdate());
insert into t1 values ( 'T003','A000001',1203,getdate()) ;
insert into t2 values ('G003','A000001',getdate());
....很多条 类似的
--有对应的关系 T001-G001    T002-G002   T003-G003
--其中数据中CREATETIME 按照 以上的INSERT语句递增的
--两张表只有 T1.VN=T2.VN
预期达到的数据 G_NO    VN        PRICE
G001    A000001   1201
G002    A000001   1202
G003    A000001   1203
上面只是一很长的SQL语句结果中的一部分。故不能用临时表。
求大侠指教。

解决方案 »

  1.   

    select a.G_NO,a.VN,b.PRICE from T2 a 
    left join
    (select Replace(T_NO,'T','G')T_NO,PRICE from T1) b
    on a.G_NO=b.T_NO
      

  2.   

    select T2.G_NO,T1.VN,T1.PRICE
    from T1 join T2 on replace(T1.T_NO,'T','G')=T2.G_NO
    where T1.VN=T2.VN
      

  3.   

    T1.T_NO 跟 T2.G_NO  并没有直接关联,也可能T1.T_NO=T009 对应T2.G_NO=G003。
    是的。这是系统以前设计的时候遗留的问题。以目前的状况是否 无解了?
      

  4.   

    --有对应的关系 T001-G001    T002-G002   T003-G003 这是什么意思?
      

  5.   

    意思是说 比如说这是一个 入库(T001)与出库(G001)的动作,必定是先有入库 然后才有出库,但是不一定是T001的入库编号对应G001的出库编号(有可能是T001的入库编号对应G002的出库编号)
      

  6.   

    意思是说 比如说这是一个 入库(T001)与出库(G001)的动作,必定是先有入库 然后才有出库,但是不一定是T001的入库编号对应G001的出库编号(有可能是T001的入库编号对应G002的出库编号) 
    ------------------------------------------
    你的描述, 用关联表不行么?  纠结什么?