KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I want to be able to inner join two tables based on the result of an expression. What I've been trying so far: INNER JOIN CASE WHEN RegT.Type = 1 THEN TimeRegistration ELSE DrivingRegistration AS RReg ON RReg.RegistreringsId = R.Id RegT is a join I made just before this join: INNER JOIN RegistrationTypes AS RegT ON R.RegistrationTypeId = RegT.Id This SQL-script does not work. So all in all, if the Type is 1, then it should join on the table TimeRegistration else it should join on DrivingRegistration . Solution: In my select statement I performed the following joins: INNER JOIN RegistrationTypes AS RegT ON R.RegistrationTypeId = RegT.Id LEFT OUTER JOIN TimeRegistration AS TReg ON TReg.RegistreringsId = R.Id AND RegT.Type = 1 LEFT OUTER JOIN DrivingRegistration AS DReg ON DReg.RegistreringsId = R.Id AND RegT.Type <>1 Then I edited my where-clause to output the correct, depending on the RegType , like this: WHERE (CASE RegT.Type WHEN 1 THEN TReg.RegistreringsId ELSE DReg.RegistreringsId END = R.Id)
Tags (comma-separated)
Save Edits
Cancel