SQL Server 2012协助JOIN

时间:2013-03-28 02:41:45

标签: sql sql-server-2012

人力资源经理需要按姓氏,受抚养人的名字和受抚养的出生日期列出员工名单。相关的输出列是employee表中的emp_last_name和依赖表中的dep_name和dep_date_of_birth。使用别名表名称。适当地命名每列。按emp_last_name对结果表进行排序。使用CAST语句生成一个可以轻松放在一个页面上的列表。

到目前为止,我有这个:

SELECT emp_last_name"Employee Last Name", 
        dep_name"Dependent Name", 
       CAST(dep_date_of_birth as char(12))"Dependent Date of Birth"
from employee dependent
ORDER BY emp_last_name;

但是我无法弄清楚如何加入它,因为有很多具有相同姓氏的家属。不,这不是功课。我在教自己SQL Server,我遇到了一些问题。只是想从那些知道自己在做什么的人那里得到一些帮助。

1 个答案:

答案 0 :(得分:1)

您可以使用JOIN

SELECT e.emp_last_name "Employee Last Name", 
        d.dep_name "Dependent Name", 
       CAST(d.dep_date_of_birth as char(12))"Dependent Date of Birth"
from employee e INNER JOIN dependent d ON e.emp_ssn = d.dep_emp_ssn
ORDER BY emp_last_name;

或者,您可以像这样加入表格:

SELECT e.emp_last_name "Employee Last Name", 
        d.dep_name "Dependent Name", 
       CAST(d.dep_date_of_birth as char(12))"Dependent Date of Birth"
from employee e, dependent d 
WHERE e.emp_ssn = d.dep_emp_ssn
ORDER BY emp_last_name;

如果您还想包括没有家属的员工,请使用LEFT JOIN:

SELECT e.emp_last_name "Employee Last Name", 
        d.dep_name "Dependent Name", 
       CAST(d.dep_date_of_birth as char(12))"Dependent Date of Birth"
from employee e LEFT JOIN dependent d ON e.emp_ssn = d.dep_emp_ssn
ORDER BY emp_last_name;