Jeg vil gerne lave en forespørgsel/rapport, hvor jeg for hver opgave får vist alle felter i opgaveposten + den nyeste opdateringstekst vedrørende samme opgave.
Når jeg laver en forespørgsel på alle felter i begge tabeller og under status_opdateret sætter Total til Maks, så vises alle posterne i Status tabellen.
SQL: SELECT Opgaver.opgave_id, Opgaver.opgave_navn, (...), Status.status_id, Status.status_opgave_id, Max(Status.status_opdateret) AS MaksOfstatus_opdateret, Status.status_tekst FROM Opgaver INNER JOIN Status ON Opgaver.opgave_id=Status.status_opgave_id GROUP BY Opgaver.opgave_id, Opgaver.opgave_navn, (...), Status.status_id, Status.status_opgave_id, Status.status_tekst;
q2: SELECT Status.status_opgave_id, Max(Status.status_opdateret) AS MaksOfstatus_opdateret FROM Status GROUP BY Status.status_opgave_id HAVING (((Max(Status.status_opdateret))<=[Indtast dato- tidsgruppe]));
q3: SELECT Forespørgsel1.opgave_navn, Forespørgsel1.opgave_formaal, Forespørgsel1.opgave_fase_id, Forespørgsel1.opgave_start, Forespørgsel1.opgave_slut, Forespørgsel1.opgave_interessenter, Forespørgsel2.MaksOfstatus_opdateret FROM Forespørgsel1 INNER JOIN Forespørgsel2 ON Forespørgsel1.opgave_id = Forespørgsel2.status_opgave_id;
SELECT Forespørgsel1.opgave_navn, Forespørgsel1.opgave_formaal, Forespørgsel1.opgave_fase_id, Forespørgsel1.opgave_start, Forespørgsel1.opgave_slut, Forespørgsel1.opgave_interessenter, Forespørgsel2.MaksOfstatus_opdateret, Forespørgsel2.status_tekst FROM Forespørgsel1 INNER JOIN Forespørgsel2 ON Forespørgsel1.opgave_id = Forespørgsel2.status_opgave_id;
Ny forespørgsel2:
SELECT Status.status_opgave_id, Max(Status.status_opdateret) AS MaksOfstatus_opdateret, Status.status_tekst FROM Status GROUP BY Status.status_opgave_id, Status.status_tekst HAVING (((Max(Status.status_opdateret))<=[Indtast dato- tidsgruppe]));
Tusind tak for din hjælp - skriv et svar, hvis du vil have point.
Jeg har selv siddet googlet/rodet med det i dagens løb også - og er med inspiration fra det, du har lavet, kommet frem til følgende, som tilsyneladende løser opgaven også:
SELECT s1.status_id, s1.status_opgave_id, s1.status_opdateret, s1.status_tekst FROM Status AS s1 WHERE ((s1.status_opdateret=(SELECT MAX(s2.status_opdateret) FROM Status AS s2 WHERE s1.status_opgave_id = s2.status_opgave_id AND s2.status_opdateret <=[dato])));
Om det er optimalt ved jeg ikke, men det er lettere gennemskueligt end 3 interdependente forespørgsler.
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.