现在才觉得sql语句好难写!!!
有这样的两个表
Mep表
MId(主键) MNm MId(10位char) 最后两位为00表示一个管理者,比如4200000000,4200000001,4200000002.前者就是后两者的管理者
InFor表
ID(主键,自动生成的),MId1,MId2,MId3(MId1,MId2,MId3是外键 对应Mep表中的MId,而是MId1,MId2,MId3属于同一个管理者的)
现在想显示
Infor表中的格式是这样显示的
ID,还要显示MId1的管理者名字(MNm),显示MId1(对应的名字),显示MId2(对应的名字),显示MId2(对应的名字),
这个sql语句怎么写的啊
显示的四个名字全部都是一个表中的,我字段名都不知道怎么写了,写一样会重复,还有一个就是怎么把一列所有的记录都转换下字符。就像上面那个。至少把MDe1字符都动态的转换为相应的管理者。
问题点数:20、回复次数:4Top
1 楼ping3000(苦练葵花点穴手)回复于 2006-03-02 16:57:45 得分 10
select ID,
MId1管理者名字 = isnull((select MNm from Mep where left(MId,8) = left(MId1,8) and right(MId,2) = '00'),''),
MId1名字 = isnull((select MNm from Mep where MId = MId1),''),
MId2管理者名字 = isnull((select MNm from Mep where left(MId,8) = left(MId2,8) and right(MId,2) = '00'),''),
MId2名字 = isnull((select MNm from Mep where MId = MId2),'')
from InForTop
2 楼msjqd(黑色幽默)回复于 2006-03-02 17:06:46 得分 0
楼主能不能说的明白一点
看不懂Top
3 楼xfxf521(天使也一样)回复于 2006-03-02 17:16:19 得分 0
MailDepartment(MId,MNm )(MId(char (10))的命名规则是最后两位为00的话就为前面八位相同的管理者),比如说4200000000,就是4200000001,4200000002的管理者
现在有另外一个表
Information(ID,MDep1,MDep2,MDep3)(MDep1,MDep2,MDep3不是管理者,而且他们的管理者为同一个人)
现在想要显示Information的信息
但是显示的信息不为编号,二是要显示名字(也就是MNm的记录),再包括三个人的那个共同的管理者的姓名。不知道这样说清楚了没有Top
4 楼ShunJuan(娟娟)回复于 2006-03-02 17:54:14 得分 10
select
isnull((select mnm from mep where mid=left(infor.mid1,8)+'00'),'')as 管理者姓名,
isnull((select mnm from mep where mid=infor.mid1),'')as mid1姓名,
isnull((select mnm from mep where mid=infor.mid2),'')as mid2姓名,
isnull((select mnm from mep where mid=infor.mid3),'')as mid3姓名
from inforTop




