;WITH T1 AS(
SELECT *,ROW_NUMBER()OVER(PARTITION BY 工号 ORDER BY GETDATE())RN FROM 职工培训
)
,T2 AS(
SELECT *,ROW_NUMBER()OVER(PARTITION BY 工号 ORDER BY 论文题目)RN FROM 职工论文发表
)
,T3 AS(
SELECT *,ROW_NUMBER()OVER(PARTITION BY 工号 ORDER BY 科研项目)RN FROM 科研项目
)
SELECT
ISNULL(T.工号,T3.工号)[工号]
,ISNULL(T.姓名,T3.姓名)[姓名]
,ISNULL(T.RN,T3.RN)[RN]
,T.参加培训项目
,T.论文题目
,T3.科研项目
FROM
(SELECT
ISNULL(T1.工号,T2.工号)[工号]
,ISNULL(T1.姓名,T2.姓名)[姓名]
,ISNULL(T1.RN,T2.RN)[RN]
,T1.参加培训项目
,T2.论文题目
FROM T1
FULL JOIN T2
ON T1.工号=T2.工号 AND T1.姓名=T2.姓名 AND T1.RN=T2.RN
)T
FULL JOIN T3
ON T.工号=T3.工号 AND T.姓名=T3.姓名 AND T.RN=T3.RN
ORDER BY ISNULL(T.工号,T3.工号),ISNULL(T.RN,T3.RN)
/*
1001 张三 1 VC 论文1 项目1
1001 张三 2 JAVA 论文2 NULL
1001 张三 3 VB NULL NULL
1002 李四 1 EXCEL 论文3 项目3
1002 李四 2 NULL 论文4 项目4
1002 李四 3 NULL NULL 项目5
*/SQL2005有效