这个SQL怎么写? 看者有分 !(200分)

  • 主题发起人 主题发起人 atman
  • 开始时间 开始时间
A

atman

Unregistered / Unconfirmed
GUEST, unregistred user!
主表名称 Emptable.db
部门名称 职务 姓名 .....
------------------------------
105 01 徐X .....
105 03 王X .....
103 02 李X .....
... ... ... .....

自定义的数据字典 名称 DictTable.db
内容名称 编号
------------------------------------
人事部 103
保安部 104
办公室 105
主任 01
经理 02
员工 03
.... ...
------------------------------------

现在要显示主表内容 但是不要显示编号,即:

部门名称 职务 姓名 .......
------------------------------------
办公室 主任 徐X .......
办公室 员工 王X .......
人事部 经理 李X .......
~~~~~~ ~~~~ ~~~~~~~
表中有很多这样转换的字段!

请教各位大虾,在保证速度的前提下,这个 SQL 怎么写呀!
 
编个程序把它的字段名显示出来不就行了?
 
?????
 
用程序作一些判断吧.
 
简单办法:在Delphi中用LookUp型字段
 
Look up 字段
 
select b.内容名称,a.姓名 from Emptable a,DictTable b
where a.部门名称=b.编号

“职务”也类似,当然lookup字段效果一样。
 
补充:如果是paradox表,我认为可能使用lookup字段更快些,毕竟bde还要翻译
sql语句.
 
该死,被三代坦克抢先了!
 
这是一个SQL SERVER 7 中的表!
还有用 WHERE A.A=B.B 在速度上太慢了
 
我是来看的,你说过有分的
 
如果是sql-server数据库,使用sql语句更好。
关于速度问题,建索引,用存储过程... 没更好的办法。8-(
 
请大家在说的仔细点 好吗?
 
我是来看的,你说过有分的
 
一共200分,这么多人怎么分?
 
select d1.内容名称,d2.内容名称,emptable.姓名
from dicttable d1,dicttable d2,emptable
where d1.编号 = emptable.部门名称
and d2.编号 = emptable.职务
 
select d1.内容名称,d2.内容名称,emptable.姓名
from dicttable d1,dicttable d2,emptable
where d1.编号 = emptable.部门名称
~~~~~~~~~~~~~~~~~~~~~~~~~~~
and d2.编号 = emptable.职务
~~~~~~~~~~~~~~~~~~~~~~~~
可要是有时候 d1.编号或者d2.编号 是一个null
我也要把它们显示出来怎么办?
 
select a.内容名称 as 部门名称, b.内容名称 as 职务, c.姓名 from "EmpTable.db" c
left outer join "DictTable.db" a on (c.部门名称=a.编号)
left outer join "DictTable.db" b on (c.职务=b.编号)
 
关注。Another_eYes说的挺好。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
796
import
I
后退
顶部