0
私は配管などの特定のスキルを持つデータベース内のすべての従業員を取得しようとしています。次のクエリを実行すると、私は必要なデータを取得していますが、その従業員は複数回表示されています。複数の行を1行に減らす
SELECT
TE.intEmployeeID
,TE.strLastName + ', ' + TE.strFirstName AS strEmployeeName
,CONVERT (VARCHAR, TE.dteHireDate, 101) AS dteHireDate
,TES.intSkillID
,TS.strSkills
FROM
TEmployees AS TE
,TEmployeeSkills AS TES
,TSkills AS TS
,TJobEmployees AS TJE
WHERE
TE.intEmployeeID = TJE.intEmployeeID
AND TS.intSkillID = TES.intSkillID
AND TES.intEmployeeID = TE.intEmployeeID
AND TES.intEmployeeID = TJE.intEmployeeID
AND TES.intSkillID = 6
/*
What I am getting:
intEmployeeID strEmployeeName dteHireDate intSkillID strSkills
2 Quagmire, Glen 06/10/2012 6 Plumbing
4 Cage, Luke 01/10/2012 6 Plumbing
4 Cage, Luke 01/10/2012 6 Plumbing
2 Quagmire, Glen 06/10/2012 6 Plumbing
2 Quagmire, Glen 06/10/2012 6 Plumbing
4 Cage, Luke 01/10/2012 6 Plumbing
What I need:
intEmployeeID strEmployeeName dteHireDate intSkillID strSkills
2 Quagmire, Glen 06/10/2012 6 Plumbing
4 Cage, Luke 01/10/2012 6 Plumbing
*/
一部の表には1対多の関係があります。ユニークな行を得るために 'distinct'を使います。 –
[各グループの最上位1行を取得する]の複製があります。(http://stackoverflow.com/questions/6841605/get-top-1rowrowof-each-group) –
私の質問はどのように投票されますか? –