求一SQL
--测试数据
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语句结果中的一部分。故不能用临时表。
求大侠指教。
[解决办法]
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
[解决办法]
两表关联, 最好有外键, 或者建立关联表; 否则查询中存在函数操作会很慢
[解决办法]
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
[解决办法]
那你一条一条记录人工去拼起来,2个无关联的表也只能这样咯。
[解决办法]
--有对应的关系 T001-G001 T002-G002 T003-G003 这是什么意思?