Avatar billede troldmanden Nybegynder
14. august 2003 - 22:52 Der er 17 kommentarer og
1 løsning

Max. Datoværdi

Hej.
Jeg vil gerne lave en forespørgsel der kun medtager den nyeste dato og afdeling, da disse kan have én eller flere
værdier på den samme medarbejder. Hvordan gør jeg det?

Id (Lønnummer)    Afdeling          Dato
435                Trykkeri          22-01-00
435                Farveri            25-02-02
0sv.
Avatar billede kabbak Professor
14. august 2003 - 23:33 #1
vælg grupper
og maks of date
Avatar billede sjap Praktikant
14. august 2003 - 23:42 #2
I en forespørgsel kan det f.eks. se således ud:

SELECT Id, Afdeling, Dato
FROM tblAfdeling
WHERE (((Dato)=DMax("Dato","tblAfdeling","[Id]=" & "ID")));
Avatar billede kabbak Professor
14. august 2003 - 23:43 #3
SELECT Medarbejder.Id, Medarbejder.Afdeling, Max(Medarbejder.Dato) AS MaksOfDato
FROM Medarbejder
GROUP BY Medarbejder.Id, Medarbejder.Afdeling;
Avatar billede troldmanden Nybegynder
14. august 2003 - 23:47 #4
Jeg for meddelelsen at datatyperne ikke passer overens med kriterieudtrykket.

I Total har jeg indsat: Grupper efter
Og i kriterie: "maks of date"
Avatar billede kabbak Professor
14. august 2003 - 23:49 #5
maks of date er kun for datoen, de andre skal der bare stå grupper efter
Avatar billede troldmanden Nybegynder
14. august 2003 - 23:49 #6
jeg ser om det virker, og holder tungen lige i munden imens. tak for svarene.
Avatar billede sjap Praktikant
14. august 2003 - 23:57 #7
Troldmanden
Du skal blot kopiere ovenstående SQL - kabbaks eller mit -ind i din forespørgsel (i SQL-visning). Du skal blot huske at ændre tabelnavnet (de to steder hvor der står "tblAfdeling" i mit forslag eller de steder hvor der står "Medarbejder" i kabbaks forslag).
Avatar billede sjap Praktikant
14. august 2003 - 23:59 #8
Så vidt jeg lige kan se er forskellen på de to forslag, at kabbaks forslag medtage begge afdelinger, hvor mit kun vil medtage afdelingen med den højeste dato. Så er det blot spørgsmålet om, hvad det er du ønsker.
Avatar billede troldmanden Nybegynder
15. august 2003 - 00:00 #9
Til Kabbak.
Yeps nu forstår jeg det med grupper og maks of date, men jeg ville kun have  det nyeste tilhørsforhold med nyeste dato med.
Avatar billede kabbak Professor
15. august 2003 - 00:03 #10
ok, så er det superjaps du skal bruge.
Avatar billede troldmanden Nybegynder
15. august 2003 - 01:20 #11
Hej Superjap.
Jeg har indsat din sql sætning, men jeg for kun 2 poster med samme dato.11aug
det jeg skulle have var alle medarbejdere med hver deres nyeste dato.
hæver lige pointene til 100.
Avatar billede troldmanden Nybegynder
15. august 2003 - 02:17 #12
Er der ingen der kan hjælpe?
Avatar billede kabbak Professor
15. august 2003 - 08:27 #13
Du skal bruge 2 forespørgsler
Denne har jeg kaldt FS_MaxOfDate

SELECT Medarbejder.Id, Max(Medarbejder.Dato) AS MaksOfDato
FROM Medarbejder
GROUP BY Medarbejder.Id;

Den næste må du selv bestemme navnet på
SELECT Medarbejder.Id, Medarbejder.Afdeling, Medarbejder.Dato
FROM FS_MaxOfDate INNER JOIN Medarbejder ON (FS_MaxOfDate.Id = Medarbejder.Id) AND (FS_MaxOfDate.MaksOfDato = Medarbejder.Dato)
GROUP BY Medarbejder.Id, Medarbejder.Afdeling, Medarbejder.Dato;

det er den sidste du skal se i.
Avatar billede sjap Praktikant
15. august 2003 - 14:32 #14
Åh ja det beklager jeg. Der var lige en smutter i den sidste linie ( id skal være i firkantede parenteser - ikke i citationstegn).

Prøv med nedenstående:

SELECT DISTINCTROW Id, Afdeling, Dato
FROM tblAfdeling
WHERE (((Dato)=DMax("Dato","tblAfdeling","[Id]=" & [ID])));
Avatar billede Jørgen Kirkegaard Professor
15. august 2003 - 15:09 #15
Min erfaring siger mig, at det ikke umiddelbart kan lade sig gøre i et eller flere Select-statements. Du må programmere dig ud af det.
Avatar billede terry Ekspert
15. august 2003 - 17:28 #16
If your still having problems then you can send the dB to eksperten@santhell.dk and I will take a look for you
Avatar billede sjap Praktikant
16. august 2003 - 00:17 #17
Hvorfor bruge to forespørgsler, når det kan klares med én? Det må du jo selvfølgelig selv om ;0(
Avatar billede Jørgen Kirkegaard Professor
18. august 2003 - 11:13 #18
Vær opmærkssom på, at hvis du har flere rækker med samme ID og med samme dato, får du alle rækker frem - det troede jeg ikke, at du ville.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester