首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

求一SQL解决方案

2013-10-21 
求一SQL--测试数据CREATE TABLE T1(T_NO VARCHAR(10),VN VARCHAR(10),PRICE DECIMAL(10,2),CREATETIME dat

求一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
[解决办法]
引用:
T1.T_NO 跟 T2.G_NO  并没有直接关联,也可能T1.T_NO=T009 对应T2.G_NO=G003。


引用:
两表关联, 最好有外键, 或者建立关联表; 否则查询中存在函数操作会很慢
是的。这是系统以前设计的时候遗留的问题。

以目前的状况是否 无解了?


那你一条一条记录人工去拼起来,2个无关联的表也只能这样咯。
[解决办法]
引用:
T1.T_NO 跟 T2.G_NO  并没有直接关联,也可能T1.T_NO=T009 对应T2.G_NO=G003。


引用:
两表关联, 最好有外键, 或者建立关联表; 否则查询中存在函数操作会很慢
是的。这是系统以前设计的时候遗留的问题。

以目前的状况是否 无解了?

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

热点排行