Avatar billede puppetmaster Nybegynder
03. august 2005 - 11:24 Der er 6 kommentarer og
1 løsning

Samle 2 datoer i tekststreng

Er det muligt at oprette en tabeloprettelsesforespørgsel (i forespørgselseditioren), hvor det ene felt i den nye tabel kommer til at består af 2 datoer fra en anden tabel?
Eksempel på tabellen som data hentes fra:

Dato    Medarbejdernr_    SumOfEnheder    SumOfBeløb
09-01-2005    9380          37    4421,5
09-01-2005    9395          41,5    4959,25
09-01-2005    9399          29,6    3537,2
12-06-2005    9380          72    8712
12-06-2005    9395          72,6    8784,6
12-06-2005    9399          44,15    5342,15

Tabellen som jeg vil ende med:
Tot              Medarbejdernr_  Dato
119,336162988115    9399        09-01-2005, 12-06-2005
120,454425942156    9395        09-01-2005, 12-06-2005
120,490825688073    9380        09-01-2005, 12-06-2005

Der er ingen problemer med at få udregnet Tot på baggrund af Medarbejdernr, men hvordan "samler" man datoerne? Og det bliver værre endnu, det skal være de 2 nyeste datoer for hver medarbejder!
(Nogle holder ferie i op til 4 uger og derfor forekommer der "store" spring i rækken af datoer)
Spørg endelig hvis jeg kan fortælle noget som kan afklare spørgsmål...
Avatar billede jensen363 Forsker
03. august 2005 - 11:53 #1
Kunsten består i, først at få identificeret de to datoer for hver medarbejder. Dette kan nok bedst gøres i en Temp-tabel med Top 2 og loop på medarbejdernr
Avatar billede puppetmaster Nybegynder
03. august 2005 - 12:01 #2
Det er ikke noget problem at få fat i de 2 nyeste poster for hver medarbejder, problemet består i at får forespørgslen til at fatte at datoerne skal sættes sammen.
Hvis jeg vælger Gennemsnit i feltet Total, får jeg den dato der ligger mellem de 2 nyeste datoer. Hvis jeg vælger Sum lægger den bare datoerne sammen. Jeg skal nok brug Udtryk, men hvordan?
Avatar billede jensen363 Forsker
03. august 2005 - 12:06 #3
Hvis du har de to nyeste isoleret kan di vel gøre noget a´la

SELECT Sum(Tabel.SumOfEnheder) AS SumOfSumOfEnheder, Tabel.medarbejdernummer, First(Tabel.Dato) AS FørsteOfDato, Last(Tabel.Dato) AS SidsteOfDato
FROM Tabel
GROUP BY Tabel.medarbejdernummer;
Avatar billede puppetmaster Nybegynder
08. august 2005 - 14:32 #4
Hmmm...ikke helt, jensen, for First(Tabel.Dato) henter den første post, Last(Tabel.Dato) den sidste, men der kan sagtens være 50 poster med forskellige datoer fra, say, 1998 og frem til nu.
Avatar billede puppetmaster Nybegynder
08. august 2005 - 14:42 #5
Terry, you were so kind to solve my problem (http://www.eksperten.dk/spm/627811) and this is rather similar, I think.
Avatar billede puppetmaster Nybegynder
16. august 2005 - 15:35 #6
Når jeg prøver med denne forespørgsel, får jeg en fejl.

UPDATE Medarbejdere SET Medarbejdere.[GennemsitslonVariabel] = tempLønpost.Total, Medarbejdere.Beregningsgrundlag = First([tempLønpost].[Dato]) & ", " & Last([tempLønpost].[Dato])
WHERE (((Medarbejdere.Nummer)=[tempLønpost].[Medarbejdernummer]));

Fejlen:
Du har forsøgt at køre en forespørgsel, der ikke medtager det angivne udtryk "Total" som en del af en aggregat funktion.
Avatar billede puppetmaster Nybegynder
08. september 2005 - 13:54 #7
Stadig ikke den rigtige løsning, lukker spørgsmålet.
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