Avatar billede sun Nybegynder
17. februar 2005 - 13:05 Der er 7 kommentarer og
1 løsning

Hjælp til Group By

Hejsa, har ikke prøvet Group By før og kan ikke lige finde ud af hvordan jeg skal lave denne SQL for at få dette rigtig ud

Min database ser sådan ud (simpel udgave).

-Arrangementer-
AID
ANavn
DATO

-Medarbejdere-
MID
MNavn

-AlinkM- som er til at linke de to andre
LID
MID
AID
LØN


Det jeg godt vil havde den til er, jeg skriver to datoer ind, som den så tager alle Arrangementer som har være inde for den periode. og grouper dem så efter Medarbejdere navn. så jeg få noget som ser sådan ud, når jeg sæter en dato fra 01-01-05 til 01-01-03

(Mnavn)Hans (DATO)12-12-04 (ANavn)Drland (Løn)2000kr
(Mnavn)Hans (DATO)05-06-04 (ANavn)Kattebakke (Løn)5000kr
(Mnavn)Hans (DATO)03-04-03 (ANavn)De nye (Løn)15000kr

(Mnavn)Per (DATO)12-12-04 (ANavn)Drland (Løn)5000kr
(Mnavn)Per (DATO)03-04-03 (ANavn)De nye (Løn)15000kr

(Mnavn)Sine (DATO)12-12-04 (ANavn)Drland (Løn)1000kr
(Mnavn)Sine (DATO)05-06-04 (ANavn)Kattebakke (Løn)1000kr

Håber i kan forstå.

Tak på forhånd
Avatar billede hulla Novice
17. februar 2005 - 13:11 #1
Group by fjerner jo bare dine dubletter, det du vil er vist Order By tror jeg??

Må jeg se din sql streng ?
Avatar billede eagleeye Praktikant
17. februar 2005 - 13:12 #2
Prøv sådan her, og du behøver ikke bruge group by:

"select Medarbejdere.Mnavn, Arrangementer.DATO, Arrangementer.ANavn, AlinkM.LØN from (Medarbejdere inner join AlinkM on Medarbejdere.MID = AlinkM.MID) inner join Arrangementer ON AlinkM.AID = Arrangementer.AID where Arrangementer.DATO between #" & fraDato & "# AND #" & tilDato & "# order by Medarbejdere.Mnavn"
Avatar billede eagleeye Praktikant
17. februar 2005 - 13:15 #3
Datoer skal formateres i formatet yyyy-mm-dd når de overføres via SQL, overføres de som DK format vil acess bytte rundt på dag og måned hvis kolonnen DATO er af type Date/Time.

fradato="01-01-03"
tildato="01-01-05"

fraDato = year(fradato) & "-" & month(fradato) & "-" & day(fradato)
tilDato = year(tildato) & "-" & month(tildato) & "-" & day(tildato)
Avatar billede sun Nybegynder
17. februar 2005 - 13:26 #4
Vil lige teste det når jeg har tid men det ser jo meget rigtig ud.... vender tilbage..:-)
Avatar billede sun Nybegynder
17. februar 2005 - 15:13 #5
ok det virker men..
Jeg kan ikke order på medarbejdere navn som faktisk er fristname, for mange med samme navn, så jeg gøre det efter id nummer under medarbejdere, men så kommer de jo ikke alfabetisk??

Du for lige den kode som jeg har pt.

SELECT tbMedarbejdere.FirstName, tbMedarbejdere.LastName, tbMedarbejdere.UserID,  tbARRlinkMED.AlLstatus, tbArrangementer.ARRDato, tbArrangementer.ARRNavnet, tbARRlinkMED.ALMhonorar
FROM tbMedarbejdere INNER JOIN (tbArrangementer INNER JOIN tbARRlinkMED ON tbArrangementer.ARRID = tbARRlinkMED.IDARR) ON tbMedarbejdere.UserID = tbARRlinkMED.IDMed
WHERE tbARRlinkMED.AlLstatus = 1 AND where Arrangementer.DATO between #" & fraDato & "# AND #" & tilDato & "# ORDER BY tbMedarbejdere.UserID;

Har lige lavet om til de rigtig database navn og der skulle noget mere ind.
Avatar billede eagleeye Praktikant
17. februar 2005 - 15:17 #6
Du kan angive flere kolonner i ORDER BY så du kan ORDER BY både Fornavn og efternavn og evt. ID vis der er to som hedder det samme sådan her:


SELECT tbMedarbejdere.FirstName, tbMedarbejdere.LastName, tbMedarbejdere.UserID,  tbARRlinkMED.AlLstatus, tbArrangementer.ARRDato, tbArrangementer.ARRNavnet, tbARRlinkMED.ALMhonorar
FROM tbMedarbejdere INNER JOIN (tbArrangementer INNER JOIN tbARRlinkMED ON tbArrangementer.ARRID = tbARRlinkMED.IDARR) ON tbMedarbejdere.UserID = tbARRlinkMED.IDMed
WHERE tbARRlinkMED.AlLstatus = 1 AND where Arrangementer.DATO between #" & fraDato & "# AND #" & tilDato & "# ORDER BY tbMedarbejdere.FirstName, tbMedarbejdere.LastName, tbMedarbejdere.UserID;


Nu sortere først efter tbMedarbejdere.FirstName og er der to eller flere med samme fornavn bliver de sorteret efter tbMedarbejdere.LastName, igen er der to eller flere som hedder det samme sorteres de efter deres ID.
Avatar billede sun Nybegynder
17. februar 2005 - 15:40 #7
Der kan man se. takker mange gang.

keep up the good help
Avatar billede eagleeye Praktikant
17. februar 2005 - 15:41 #8
Skal jeg så lave et svar :)
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
Kurser inden for grundlæggende programmering

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