Avatar billede pongobear Nybegynder
25. september 2007 - 16:12 Der er 13 kommentarer og
1 løsning

Hvor mange medarbejdere har været på arbejde i seneste måned?

Jeg har en Tabel som indeholder følgende 3 kolonner:

Dato, Lonnummer, Afdeling.

Jeg ønsker at finde ud af, hvor mange medarbejdere har været på arbejde i et givet Dato interval, i hver Afdeling. En medarbejder kan godt have arbejdet i flere afdelinger, men skal selvfølgelig kun tælle med én gang pr. afdeling. Hver medarbejder har ét og kun ét Lonnummer.


EKSEMPEL (Dato > 01.01.2007)

Dato        Lonnummer Afdeling.
01.01.2007  007      10       
02.01.2007  008      11
02.01.2007  007      11
03.01.2007  007      10

RESULTAT:
Afdeling  Antal
10        1
11        2

Med venlig hilsen,

ITumpen
Avatar billede jensen363 Forsker
25. september 2007 - 16:18 #1
ELECT Count(Table.lonnr) AS CountOflonnr, Table.afdeling
FROM [Table]
GROUP BY Table.Dato, Table.afdeling
HAVING (((Table.Dato)>#1/1/2007#))
ORDER BY Table.afdeling;
Avatar billede pongobear Nybegynder
25. september 2007 - 16:35 #2
Hej Jensen,

Ikke helt det jeg ønsker:

CountOfLoennrTimereg    Afdeling    Dato
55    1    16-08-2007
53    1    17-08-2007
46    1    18-08-2007
44    1    19-08-2007

Jeg ønsker unikke medarbejdere over et dato interval (hvor datointervallet er større end bare én dag)
Avatar billede terry Ekspert
25. september 2007 - 18:13 #3
THe SQL Jensen gave as an answer gives you what you want form the example given.

Can you give us more information and maybe another example?
Avatar billede pongobear Nybegynder
26. september 2007 - 08:23 #4
Okay, jeg skal prøve. Følgende er min implementering af Jensens kode, som giver en liste over antal medarbejdere pr afdeling PR DAG:

SELECT Count(MtblTimeberegning.LoennrTimereg) AS CountOfLoennrTimereg, MtblTimeberegning.AfdArb, MtblTimeberegning.Dato
FROM MtblTimeberegning
GROUP BY MtblTimeberegning.AfdArb, MtblTimeberegning.Dato
HAVING (((MtblTimeberegning.Dato)>#8/15/2007#))
ORDER BY MtblTimeberegning.AfdArb;

Jeg ønsker en liste over antal medarbejdere pr afdeling PR DATO INTERVAL. Jensens løsning er perfekt, hvis mit ønskede dato interval altid var en enkelt dag. Men typisk vil det være en hel måned...

Jeg håber det hjælper, ellers sig til :-)

ITumpen
Avatar billede terry Ekspert
26. september 2007 - 08:36 #5
SELECT tbl1.afdeling, Count(tbl1.Lonnummer) AS CountOfLonnummer
FROM tbl1
WHERE (((tbl1.Dato)>#1/1/2007#))
GROUP BY tbl1.afdeling;
Avatar billede terry Ekspert
26. september 2007 - 08:36 #6
.
Avatar billede pongobear Nybegynder
26. september 2007 - 10:33 #7
Hej Terry,

Det virker desværre ikke, da du summerer lønnummer, uden hensyn til, om lønnummeret er blevet summeret én gang allerede i perioden. Dette skyldes, at hver dag en person arbejder vil hans lønnummer figurerer i tabellen. F.eks hvis jeg arbejder to dage i træk, vil mit lønnummer figurerer begge dage i tabellen. Når man summer mine lønnumre får man således 2, hvor man kun skal have 1. Er det ikke noget med at summerer unikke lønnumre??

ITumpen.
Avatar billede terry Ekspert
26. september 2007 - 13:24 #8
Do you have a dB (table) with some data we can use as an example.
Avatar billede terry Ekspert
26. september 2007 - 14:07 #9
I think your original example is wrong!

Date should be
Dato >= 01.01.2007
Avatar billede pongobear Nybegynder
26. september 2007 - 14:27 #10
Hey Terry,

Jo jeg har en database du gerne må kigge på som eksempel. Hvor kan jeg sende den?

Mvh.

ITumpen
Avatar billede terry Ekspert
26. september 2007 - 14:38 #11
ekspertenATsanthell.dk
AT = @

and if you can give me an example of what you want to see then it might help
Avatar billede terry Ekspert
26. september 2007 - 15:46 #12
SELECT T.AfdArb, Count(T.LoennrTimereg) AS CountOfLoennrTimereg
FROM [SELECT DISTINCT ExampleDB.AfdArb, ExampleDB.LoennrTimereg
FROM ExampleDB
WHERE (((ExampleDB.Dato)>=#10/15/2007#))]. AS T
GROUP BY T.AfdArb;
Avatar billede pongobear Nybegynder
26. september 2007 - 15:57 #13
Perfekt! Det virker. Tak Terry.
Avatar billede terry Ekspert
26. september 2007 - 17:27 #14
selv tak
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