Avatar billede Slettet bruger
03. juli 2009 - 22:10 Der er 8 kommentarer og
1 løsning

group by XXXX ORDER BY yyyy

Jeg har lidt problemer med en sql-sætning.
Jeg vil gerne have lavet et udtræk, hvor jeg henter nogle poster, hvor de er grupperet ud fra en kolonne, kaldet Category og hvor de samtidig er sorteret ud fra dato.

Hvis jeg bruger GROUP BY Category virker det fint grupperingsmæssigt, men hvis jeg samtidig benytter ORDER BY Data, bliver det kun sorteret ud fra datoen.

Min SQL-sætning ser ud som:

SELECT Blog_BlogEntries.Date, Blog_BlogEntries.Header, Blog_Categories.Category
FROM Blog_BlogEntries INNER JOIN Blog_Categories ON Blog_BlogEntries.CategoryId = Blog_Categories.Id INNER JOIN Blog_Subcategories ON Blog_BlogEntries.SubcategoryId = Blog_Subcategories.Id
AND Blog_Categories.Id = Blog_Subcategories.CategoryId
GROUP BY Blog_Categories.Category, Blog_BlogEntries.Date, Blog_BlogEntries.Header ORDER BY Blog_BlogEntries.Date DESC

Nogen forslag til hvordan man kan lave det så man kan få et udtræk, hvor posterne er grupperet ud fra Category og samtidig listet efter Date faldende?
Avatar billede Slettet bruger
03. juli 2009 - 22:13 #1
SQL kan for overskuelighedens skyld trimmes ned til:

SELECT Blog_BlogEntries.Date, Blog_BlogEntries.Header, Blog_Categories.Category
FROM Blog_BlogEntries INNER JOIN Blog_Categories ON Blog_BlogEntries.CategoryId = Blog_Categories.Id
GROUP BY Blog_Categories.Category, Blog_BlogEntries.Date, Blog_BlogEntries.Header ORDER BY Blog_BlogEntries.Date DESC

Da jeg ikke umiddelbart skal bruge Subcategory osv. lige nu.
Avatar billede arne_v Ekspert
03. juli 2009 - 22:20 #2
Hvad med:

SELECT Blog_BlogEntries.Date, Blog_BlogEntries.Header, Blog_Categories.Category
FROM Blog_BlogEntries INNER JOIN Blog_Categories ON Blog_BlogEntries.CategoryId = Blog_Categories.Id
GROUP BY Blog_Categories.Category, Blog_BlogEntries.Date, Blog_BlogEntries.Header ORDER BY Blog_Categories.Category ASC,Blog_BlogEntries.Date DESC
Avatar billede Slettet bruger
03. juli 2009 - 23:16 #3
Hej.

Tak for input, men den sorterer stadig ikke faldende på dato.
Den grupperer fint nok, men datoerne er stadig i tilfældig rækkefølge.
Avatar billede arne_v Ekspert
03. juli 2009 - 23:38 #4
Den ignorerer:
  Blog_BlogEntries.Date DESC
???
Avatar billede Slettet bruger
04. juli 2009 - 01:45 #5
Nej det ser ikke ud til at virke.
Det jeg gerne vil lave er at siden, hvor alle blog-indlæg listes http://www.winfrastructure.dk/blog/blogentries.aspx skal liste dem i grupper ud fra deres kategori, men så også efter dato indenfor hver gruppe af blog-indlæg indenfor den givne kategori.
Avatar billede gnoname Praktikant
05. juli 2009 - 10:31 #6
Da du jo alligevel ikke benytter din GROUP BY til noget hvorfor så ikke bare:

SELECT Blog_BlogEntries.Date,
      Blog_BlogEntries.Header,
      Blog_Categories.Category
FROM  Blog_BlogEntries INNER JOIN Blog_Categories
ON    Blog_BlogEntries.CategoryId = Blog_Categories.Id
ORDER BY Blog_Categories.Category ASC,
        Blog_BlogEntries.Date DESC
Avatar billede Slettet bruger
05. juli 2009 - 13:22 #7
Dit forslag er jo en anden måde at gøre det på kan jeg se, men det virker desværre heller ikke.
Den 'grupperer' sådan sent fint nok, da den jo sorterer ud fra kategorinavne, men den sorterer stadig ikke efter datoen.
Avatar billede Slettet bruger
05. juli 2009 - 21:15 #8
Kan man evt. Bygge det op på en anden måde?
Med flere select inden i hinanden?
Avatar billede Slettet bruger
10. juli 2009 - 08:57 #9
Lukket
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
Computerworld tilbyder specialiserede kurser i database-management

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