10. april 2007 - 22:07Der er
7 kommentarer og 1 løsning
Count og listning sammentidigt (SQL)
Hej alle
Jeg har to tabeller.
1. Category CId(unik), WId, CategoryName ....
2. Websites WId(unik), PId, ....
Det jeg ønsker er, at liste alle CategoryName med et tal efterfølgende, som er countet på PId tilsvarende CId.
Jeg har følgende:
objConn.Execute("SELECT *, COUNT(Websites.WId) AS antal FROM Websites LEFT JOIN Category ON Websites.PId = Category.CId WHERE Category.WId=" & intWId & " GROUP BY Category.CId ORDER BY OrderView")
og den virker fint, problemet er blot den ikke viser dem med 0, dvs der hvor den ikke kan counte.
response.write int("0"&rs("antal")) Problemet er tallet, men også hele kategori-teksten. Dem med nul blive slet ikke kørt igennem while løkken fra objRS.
Jeg har muligvis misforstået dit behov, for det virker på mig lidt sært at vælge * (alle felter i begge tabeller), hvis du bare vil have kategorierne optalt...?
Desuden undrer det mig at du ikke får en fejl når du kun grupperer Category.CId. Normalt ville jeg forvente at du skulle gruppere på alle felter der ikke er aggregat-funktioner... men nu er jeg heller ikke helt sikker på hvilken database der er tale om (jeg gættede i første omgang på SQL Server).
Anyway! Jeg ville umiddelbart gøre således - hvis kravet blot er at liste kategorinavnet og antallet af gange en kategori er knyttet til det givent website:
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.