|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
csucjk 发表于 2014-12-31 07:42
A-001与A-002 都有上过两次课程,查了来的各只有一个日期,结果不太对!
其实我想要的结果是 下面图这样 ...
6楼语句运行结果:
- SELECT T1.员工工号,T1.岗位,T1.课程编号,T2.日期 FROM
- (SELECT A.课程编号,A.岗位,B.员工工号 FROM TABLE1 A,
- (SELECT DISTINCT 岗位,员工工号 FROM TABLE2) B
- WHERE A.岗位=B.岗位)T1
- LEFT JOIN
- TABLE2 T2
- ON T1.岗位=T2.岗位 AND T1.课程编号=T2.课程编号 AND T1.员工工号=T2.员工工号
- ORDER BY T1.岗位,T1.员工工号,T1.课程编号
复制代码
8楼语句运行结果:
- SELECT T1.员工工号,T1.岗位,T1.课程编号,T2.日期 FROM
- (SELECT A.课程编号,A.岗位,B.员工工号 FROM TABLE1 A LEFT JOIN
- (SELECT DISTINCT 岗位,员工工号 FROM TABLE2) B
- ON A.岗位=B.岗位)T1
- LEFT JOIN
- TABLE2 T2
- ON T1.岗位=T2.岗位 AND T1.课程编号=T2.课程编号 AND T1.员工工号=T2.员工工号
- ORDER BY T1.岗位,T1.员工工号,T1.课程编号
复制代码
若然想对记录根据岗位、工号和日期排序(无培训的放最后),且将日期字段以中文日期表示,那么改为:
- SELECT T1.员工工号,T1.岗位,T1.课程编号,FORMAT(T2.日期,'M月D日') AS 日期 FROM
- (SELECT A.课程编号,A.岗位,B.员工工号 FROM TABLE1 A LEFT JOIN
- (SELECT DISTINCT 岗位,员工工号 FROM TABLE2) B
- ON A.岗位=B.岗位)T1
- LEFT JOIN
- TABLE2 T2
- ON T1.岗位=T2.岗位 AND T1.课程编号=T2.课程编号 AND T1.员工工号=T2.员工工号
- ORDER BY T1.岗位,T1.员工工号,(T2.日期 IS NOT NULL),T2.日期
复制代码
|
|