我是一名使用复杂查询方面的新手,所以我在这里有些困惑。
以下是问题:
我有两个表,第一个是员工表:
employee:
我使用的是SQL Server Management Studio 2008,感觉很简单,但最终我却做不到。我尝试了左外连接、右外连接、内连接,甚至是交叉连接,但没有一个能给我想要的结果。
几乎让我得到答案的是交叉连接,但ID不匹配,因为交叉连接没有使用ON子句。当我添加了WHERE子句后,它自动变成了内连接。
所以我在这里错过了什么吗?如果这个问题很愚蠢,请见谅,并对我的糟糕英语表示抱歉 :)
以下是问题:
我有两个表,第一个是员工表:
employee:
empID name branchID etc
1 ab 1 ...
2 abc 4 ...
3 ad 4 ...
第二个表格是
员工考勤:
empID attDate hourIn hourOut etc
1 05-06-2013 12.00 14.00 ...
1 05-07-2013 10.00 14.00 ...
1 05-10-2013 09.00 12.00 ...
2 05-06-2013 08.00 14.00 ...
2 05-10-2013 08.00 10.00 ...
3 05-09-2013 11.00 15.00 ...
我的目标是创建以下视图:
empID name attDate hourIn hourOut etc
1 ab 05-06-2013 12.00 14.00 ...
2 abc 05-06-2013 08.00 14.00 ...
3 ad 05-06-2013 null null ...
1 ab 05-07-2013 10.00 14.00 ...
2 abc 05-07-2013 null null ...
3 ad 05-07-2013 null null ...
1 ab 05-09-2013 null null ...
2 abc 05-09-2013 null null ...
3 ad 05-09-2013 11.00 15.00 ...
1 ab 05-10-2013 09.00 12.00 ...
2 abc 05-10-2013 08.00 10.00 ...
3 ad 05-10-2013 null null ...
我使用的是SQL Server Management Studio 2008,感觉很简单,但最终我却做不到。我尝试了左外连接、右外连接、内连接,甚至是交叉连接,但没有一个能给我想要的结果。
几乎让我得到答案的是交叉连接,但ID不匹配,因为交叉连接没有使用ON子句。当我添加了WHERE子句后,它自动变成了内连接。
所以我在这里错过了什么吗?如果这个问题很愚蠢,请见谅,并对我的糟糕英语表示抱歉 :)
CROSS JOIN
和OUTER JOIN
才能获得这个结果集。在我的答案中有工作演示。 - Aziz Shaikh