17. februar 2005 - 13:05Der 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
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"
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.
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.
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.
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.