SQL syntax senaste ägare
Hej
Jag försöker knåpa ihop en SQL syntax för att ta reda på senaste ägaren för ett fordon i en MSSQL databas men lyckas inte riktigt lista ut hur jag skall få det att fungera. Följande tabeller har jag i databasen
Struktur
Bussar = Innehåller ca 50 000 olika bussar med olika data som säger vad det är för typ av buss (år, kaross osv)
bussOwner = Innehåller ca 120 000 ägarebyten, Varje rad innehåller ett radbyte för fordonen i bussar (Datum, ÄgareID)
OwnerIndex = Innehåller ägarensnamn länkat med ÄgareID i bussOwner
Följande resultat önskar jag:
ID,Regnr,Senate ägarenamn, Chassitillverkare
1234,ABC123,Swebus AB, Volvo
1235,ABC124,Arriva AB, Volvo
Jag fastnar i följande SQL syntax
SELECT OwnerIndex.OwnerName, bussOwner.Vecorder, bussOwner.OwnerData, bussar.Registreringsnummer, bussar.Chassitillverkare, bussar.id, bussar.cbr_status
FROM bussar INNER JOIN
bussOwner ON bussar.id = bussOwner.VecID INNER JOIN
OwnerIndex ON bussOwner.OwnerID = OwnerIndex.id
WHERE (bussar.cbr_status < 40)
ORDER BY bussOwner.VecID, Vecorder DESC
Istället för att sortera efter datum använder jag VecOrder där desto högre värde ger nyare ägare. Detta pågrund av att datum ibland är okänt på väldigt gamla fordon.
Ovanstående SQL syntax ger följande resultat: (Notera då att jag får samtliga ägare och varje fordon visas för varje ägare den haft tidigare från tabellen bussOwner
ID,Regnr,Senate ägarenamn, Chassitillverkare
1234,ABC123,Swebus AB, Volvo
1234,ABC123,Nobina AB, Volvo
1235,ABC124,Arriva AB, Volvo
1235,ABC124,Connex AB, Volvo
Är ingen jätte fena på SQL men någon duktigt "klocker" kan kanske ge mig ett steg i rätt riktning. Önskat läge är alltså att varje fordon skall bara visas en gång och att sista ägaren (Den med högst VecOrder nummer) visas tillsammans med fordonet.
//sammy
www.svenskbusshistoria.se