Сначала я объясню концепцию таблиц ..
У меня есть 3 таблицы, A, B и CSQL Server 2005 и .net запрос
таблица А содержит старые и новые номера лицензии, а также дата когда водитель изменил новую лицензию
таблица а содержит
fdate | oldLicense (varchar) | newLicense (varchar)
12/14/2013 4:16:16 PM | 2 | 3
В таблице B указаны номер лицензии ID, а также в первый день, когда они использовали автомобиль. Обратите внимание, что 12/14/2013 введен новый номер лицензии, что означает, что драйверы были изменены на автомобиле (, потому что старый не может больше ездить или умер).
Таблица Б содержит
ID_Car | licenseNumber | fDate
44 | 2 | 12/9/2013 4:16:16 AM
44 | 3 | 12/14/2013 4:16:16 PM
Таблица С является поддержание производится на автомобиле. Обратите внимание, что он имеет даты, он должен отражать, когда драйверы изменены.
Например, на 12/9/2013 водительские права еще 2, а на 12/15/2013 лицензии уже 3.
таблица C содержит
Invoice | ID_Car | fDate
00989 | 44 | 12/9/2013 5:00:00 AM
10100 | 44 | 12/9/2013 6:00:00 AM
32323 | 44 | 12/15/2013 12:00:00 AM
Желаемая выход :
C.Invoice | A.Licenses (old and new?)
00989 | 2
10100 | 2
32323 | 3
То, что я пытался до сих пор:
SELECT B.fInvoice, C.fLicenseNew
FROM tblCarFranchise A
LEFT JOIN tblCarMaintenance B ON A.ID_Car = B.ID_Car
LEFT JOIN tblTaxiDriversRelation C ON A.fLicenseNumber = C.fLicenseNew
Выход:
00989 | NULL
10100 | NULL
32323 | NULL
00989 | 3
10100 | 3
32323 | 3
Я действительно не знаю, как я должен начать это, это может быть самый сложный запрос, который я столкнулся до сих пор, также строки как-то дублируется (в общей сложности 6 строк вместо 3 строк)
Помощь T_T
UPDATE: @Szymon Thnx за помощь, а также к kumarch1
на изображении, номер лицензия 222333 = 2 (по вопросу) и 13213113 = 3
проверка ответа определено ниже –
изменения от <> к! = –