2013-03-28 79 views
-1

人力资源经理需要按姓氏,他们的家属名字和相关的出生日期列出员工。相关输出列是雇员表中的emp_last_name和从属表中的dep_name和dep_date_of_birth。使用别名表名。适当命名每一列。按emp_last_name对结果表进行排序。使用CAST语句生成一个可轻松放在一页上的列表。SQL Server 2012协助JOIN

到目前为止,我有这样的:

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

表格是如何设计的?他们的专栏是什么?你有多张桌子还是只有桌子是指自己? – 2013-03-28 02:43:25

+0

你为什么需要使用连接? – 2013-03-28 02:44:43

+0

我不必使用JOIN,我只是认为这是最简单的方法。这些表是:具有列emp_last_name,emp_first_name,emp_ssn,emp_superssn,emp_dateofbirth,emp_city,emp_state,emp_zip,emp_phone和从属表(表)的员工列:dep_emp_ssn,dep_name,dep_gender,dep_date_of_birth,dep_relationship。 – 2013-03-28 02:49:52

回答

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; 
+0

omg非常感谢你!我忘记了LEFT JOIN和INNER JOIN – 2013-03-28 03:14:05