03. juli 2009 - 22:10Der 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?
NIS2 skal forbedre cybersikkerheden i EU ved at stille krav til beskyttelsen af digitale tjenester og produkter, som har samfundsmæssig betydning.
19. marts 2024
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.
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
Synes godt om
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.
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.
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
Synes godt om
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.
Synes godt om
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?
Synes godt om
Slettet bruger
10. juli 2009 - 08:57#9
Lukket
Synes godt om
Ny brugerNybegynder
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.