Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
mdhingra01
Posting Yak Master
179 Posts |
Posted - 2006-11-16 : 11:05:00
|
The following is an example of my problem:I have 2 tables.TableA and TableB TableCTableA has Name, EmployeeNumberDateofBirth, AddressTableB has EmployeeNumberTestDateTestScoreTableC has EmployeeNumberRankSalaryMy query is SELECT A.NAME,A.EmployeeNUmber, A.address,b.TestScore,C.Salary,C.Rankfrom TableA A outer left join TableB B on a.EmployeeNumber=b.EmployeeNumberouter left join TableC C on a.EmployeeNumber=c.EmployeeNumberHowerver, when executing this query since an employee can have multiple TestScores on different TestDates, I end up with multiple records for an employee if an employee has written more than 1 testDate. If I am only interested in retrieving the latest TestDate and corresponding TestScore, what is the best way to acheive this.Currently, I tried putting in a temp table #lookSELECT EmployeeNumber, MAX(TestDate)as TestDateINTO #LOOKFROM TableBGROUP BY EmployeeNumberThen my query changed to SELECT A.NAME,A.EmployeeNUmber, A.address,b.TestScore,C.Salary,C.Rankfrom TableA A left outer join #look on A.EmployeeNumber = #look.EmployeeNumberleft join TableB B on B.TestDate=#look.TestDate and b.EmployeeNumber=#look.EmployeeNumberouter left join TableC C on a.EmployeeNumber=c.EmployeeNumberThis works, just wondering if there is a more efficient way of doing this.Thanks |
|
harsh_athalye
Master Smack Fu Yak Hacker
5581 Posts |
Posted - 2006-11-16 : 11:09:23
|
Why temporary table? You could use derived table or better correlated subquery:SELECT A.NAME,A.EmployeeNUmber, A.address,B.TestScore,C.Salary,C.Rankfrom TableA A Left Join TableC C on A.EmployeeNumber = C.EmployeeNumber Left Join TableB B on A.EmployeeNumber=B.EmployeeNumberWhere B.TestDate = (Select MAX(TestDate)as TestDate FROM TableB bb Where bb.EmployeeNumber = A.EmployeeNumber ) Harsh AthalyeIndia."Nothing is Impossible" |
 |
|
mdhingra01
Posting Yak Master
179 Posts |
Posted - 2006-11-16 : 11:12:16
|
Not sure how to integrate a derived table?Would appreciate any help on this. |
 |
|
harsh_athalye
Master Smack Fu Yak Hacker
5581 Posts |
Posted - 2006-11-16 : 11:20:30
|
See my previous post!Harsh AthalyeIndia."Nothing is Impossible" |
 |
|
mdhingra01
Posting Yak Master
179 Posts |
Posted - 2006-11-16 : 11:35:58
|
Thank you. That works much better |
 |
|
|
|
|
|
|