一个sql问题,各位大侠快来抢分!(50分)

  • 主题发起人 主题发起人 fifa99
  • 开始时间 开始时间
F

fifa99

Unregistered / Unconfirmed
GUEST, unregistred user!
如果我有两个表。其中一个流水表(dt.db)
有字段 dt_code (流水号 唯一)
p_code(操作员号) ,dt_fhry(复核人员号)

另外有一个操作员表(pass.db) 有字段 p_code(员工号 唯一)
p_name(员工名)

如何写一个sql查出每个操作员名:如下:



流水号 操作员名 复核人名
00001 操作员a 阿磊
00002 操作员b sam
00003 操作员c 张志鹏
 
select dt.流水号,(select pass.员工名 from pass where dt.操作员号=pass.操作员号) as 操作员名),
(select pass.员工名 from pass where dt.符合人员号=pass.员工号) as 符合人员名 from dt
 
select dt.dt_code,(select pass.p_name from pass where dt.p_code=pass.p_code) as 操作员名),
(select pass.p_name from pass where dt.dt_fhry=pass.p_code) as 复核人员名 from dt
 
你在吗fifa99?
 
SELECT dt.dt_code, pass.p_name AS 操作人员名, pass_1.p_name AS 复核人员名

FROM (dt INNER JOIN pass ON dt.p_code = pass.p_code) INNER JOIN pass
AS pass_1 ON dt.dt_ghry = pass_1.p_code;
 
select
dt.dt_code,czyb.操作员名,fhryb.操作员表
from
pass as czyb inner join dt
on czyb.p_code=dt.p_code
inner join pass as fhryb
on fhryb.p_code=dt.p_code
 
g622和我的一样.
g622:
你的语句是自己写的吗?
我是用Access的查询设计工具生成的.
 
自己写的
所以慢了
 
我只能写一点简单的,可能太依赖Access了.
jxj的可以吗?
子查询好像只能放在WHERE 和 HAVING中.
 
二個都可以,
但我認為jxj的性能优點.
 
你为什么不用DELPHI内的SQL BUILDER生成SQL语言,再做适当修改后写在程序内呢?!
 
select dt_code,a.p_name,b.p_name
from dt,pass a,pass b
where a.p_code=dt.p_code and b.p_code=dt.p_code

该语句应该是最常规的求法,也非常简单而明了,
大家不觉得用JOIN 很烦吗?
 
由于jxj大虾给我发来的答案,所以多给他一些分,其它大虾请谅解
今天的网速好快
 
接受答案了.
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部