30. september 2010 - 12:02Der er
5 kommentarer og 1 løsning
Seneste dato i relateret tabel
Hej Eksperter,
Er ved at gøre en forespøgsel i en DB med historik. Har 4 relaterede tabeller i forespørgslen t_Udstyr t_Godkend t_Status t_Lokation
De 3 sidste er en til mange relationer til t_udstyr For hvert stykke udstyr vil der være flere godkendelser, da udstyret godkendes halv- eller helårligt.
Jeg har brug for at hente datoen for den seneste godkendelse i min forespørgsel.
Jeg har brugt Query designeren til at lave forespørgslen og så forsøgt at putte en Max funktion på t_Godkend.GodkDato. Det virker bare ikke, og jeg kan ikke lige gennemskue hvad der går galt. SQL herunder:
Nu ved jeg jo ikke hvad dine felter hedder, men er det de rigtige felter du sammenligner i din subquery?
Personligt synes jeg den mest overskuelige måde at løse denne type problemstilling på er at lave en query der finder max-godkendelsesdato pr. udstyrsid (og udelukkende læser fra t_godkend).
Denne query vil jeg så bruge som input til min hovedquery og simpelthen lave en join på udstyrsid.
Hmm... det lyder lidt bagvendt for mig. Er det ikke sådan at der er flere godkendelser pr. udstyr? Jeg antog der ville være en record pr. udstyr i t_Udstyr og så flere records pr. udstyr i t_Godkend (en for hver godkendelse). Kan du uddybe hvordan records skal tolkes, når t_Udstyr peger på t_Godkend?
Sorry, du har ret jeg fik vendt det forkert. Det er som du beskriver at der er flere records i t_godkend per record i t_Udstyr. Jeg prøver lige din idé.
Tak til anlu. Ser ud til at virke - det er så nemt når mean ved hvordan ;-)
lægger du svar så du kan få nogle point
---------
SELECT t_Udstyr.Identitet, t_Udstyr.Navn, t_Status.Status, t_Lokation.LokNavn, t_Lokation.LokID, DateAdd("d",t_Godkend!GodkLobeTid,SenesteDato) AS Udlob, t_Godkend.Godkender, t_Udstyr.Ejer, (Select Max(G1.GodkDato) from t_Godkend AS G1 Where G1.Udstyr=t_Udstyr.Identitet) AS SenesteDato
FROM t_Status INNER JOIN (t_Lokation INNER JOIN (t_Godkend INNER JOIN t_Udstyr ON t_Godkend.GodkendID = t_Udstyr.Godk ) ON t_Lokation.LokID = t_Udstyr.Lokation) ON t_Status.StatusID = t_Udstyr.StatusNr
ORDER By DateAdd("d",t_Godkend!GodkLobeTid,t_Godkend!GodkDato);
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.