22. november 2007 - 22:00Der er
4 kommentarer og 1 løsning
Join på max
Hej jeg kan ikke få den til at finde den seneste dato på vke.dato og vk.Dato
Jeg har prøvet at udksrive cv uden join.. giver kun en af hver bus, har prøvet hver sub select med dato altså vk.Dato og Vke.dato giver kun en dato.. Nogen der kan se hvor det ikke hænger sammen?
SELECT DISTINCT cv.BUS, vs.Km, vke.kmtaeller, vke.kmtjek, DATE_FORMAT(vke.dato,'%d-%m-%Y') AS dato FROM c2.vognlob AS cv Inner Join vaerksted.vspeedo AS vs ON cv.BUS = vs.vognnr Inner Join vaerksted.kmeftersyn AS vke ON cv.BUS = vke.busnr WHERE cv.PLANPERIODE = '19' AND vs.Dato = (SELECT MAX(vss.Dato) FROM vaerksted.vspeedo AS vss WHERE vss.vognnr=cv.BUS) AND vke.dato = (SELECT MAX(vk.Dato) FROM vaerksted.kmeftersyn AS vk WHERE vk.busnr=cv.BUS) ORDER BY cv.BUS
Teknologi, AI og forretning er i centrum på Computerworlds Cloud og AI Festival i København d. 18. og 19. september. Se hele programmet for den store konference om strategisk brug af Cloud og AI på: www.cloud-festival.dk
SELECT DISTINCT cv.BUS, vs.Km, vke.kmtaeller, vke.kmtjek, DATE_FORMAT(vke.dato,'%d-%m-%Y') AS dato FROM c2.vognlob AS cv Inner Join vaerksted.vspeedo AS vs ON cv.BUS = vs.vognnr AND vs.Dato = (SELECT MAX(vss.Dato) FROM vaerksted.vspeedo AS vss WHERE vss.vognnr=cv.BUS) LEFT OUTER Join vaerksted.kmeftersyn AS vke ON cv.BUS = vke.busnr AND vke.dato = (SELECT MAX(vk.Dato) FROM vaerksted.kmeftersyn AS vk WHERE vk.busnr=cv.BUS) WHERE cv.PLANPERIODE = '19' ORDER BY cv.BUS
SELECT DISTINCT cv.BUS, vs.Km, vke.kmtaeller, vke.kmtjek, DATE_FORMAT(vke.dato,'%d-%m-%Y') AS dato FROM c2.vognlob AS cv LEFT OUTER Join vaerksted.kmeftersyn AS vke ON cv.BUS = vke.busnr AND vke.dato=(SELECT MAX(vk.Dato) FROM vaerksted.kmeftersyn AS vk) inner Join vaerksted.vspeedo AS vs ON cv.BUS = vs.vognnr AND vs.Dato=(SELECT MAX(vss.Dato) FROM vaerksted.vspeedo AS vss) ORDER BY cv.BUS
Tror jeg er på sporet af det.. Håber stadig der er nogen der kan se hvad der går galt
SELECT DISTINCT cv.BUS, vs.Km, vke.kmtaeller, vke.kmtjek, DATE_FORMAT(vke.dato,'%d-%m-%Y') AS dato FROM c2.vognlob AS cv inner Join vaerksted.vspeedo AS vs ON cv.BUS = vs.vognnr AND vs.Dato=(SELECT MAX(vss.Dato) FROM vaerksted.vspeedo AS vss WHERE vss.vognnr=vs.vognnr) LEFT OUTER Join vaerksted.kmeftersyn AS vke ON cv.BUS = vke.busnr AND vke.dato=(SELECT MAX(vk.Dato) FROM vaerksted.kmeftersyn AS vk WHERE vk.busnr=vke.busnr) ORDER BY cv.BUS
Her virker den uden denne linie: inner Join vaerksted.vspeedo AS vs ON cv.BUS = vs.vognnr AND vs.Dato=(SELECT MAX(vss.Dato) FROM vaerksted.vspeedo AS vss WHERE vss.vognnr=vs.vognnr)
Så det må være der den går galt. Forstår det ikke.. For har kun en bus pr dato. Og når jeg så trækker sidste dato ud og busnr .. så burde den være der.. Er det mig der overser noget?
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.