Jag är helt hjärndöd idag!
Jag håller på ett forum där man ska kunna sortera efter antal forum/inlägg
Så här ser koden ut idag:
SQL="Select * From DevForum Where ForumBel IS NULL Order By "& Session("sort2")
Set forum=Conn.Execute(SQL)
Do Until forum.EOF
Set number = Conn.Execute("Select COUNT(ForumID) AS cnt FROM [DevForum] WHERE [ForumBel] ="& forum("ForumID") &";")
antal= number("cnt")
Session("sort2") innehåller oftast ett kolumnnamn.
Hur ska jag skriva för att sorteringen ska ske via antal?
Jo, behöver ha ut allt ifrån tabellerna!
Och tanken är att man ska kunna sortera forum efter antal subforum.
Så här e det uppbyggt:
För forum:
DevForum
--ForumID
--ForumName - namn på forumet
--ForumBel - om detta är tomt så är forumet ett "huvudforum" annars så är det ett subforum och innehåller då ID nummret till det forum det tillhör.
För varje unik kombination av
ForumID,ForumName,ForumBel
så tar man fram antalet förekomster i tabellen och sorterar resultatet fallande efter detta värde.
------------------ essentitia preter non sans multiplicandum
Problemet är att count måste räkna ut hur många subforum som finns till varje forum dvs hur många finns det som har ForumBel=ForumID.
SQL="Select * From DevForum Where ForumBel IS NULL Order By "& Session("sort2")
Set forum=Conn.Execute(SQL)
Do Until forum.EOF
Set number = Conn.Execute("Select COUNT(ForumID) AS cnt FROM [DevForum] WHERE [ForumBel] ="& forum("ForumID") &";")
antal= number("cnt")
Den här koden fungerar men man skulle behöva kombinera dom
sql = "select forumid,count(ForumBel) as cnt from DevForum group by forumid order by cnt desc"
Set forum=Conn.Execute(SQL)
Do Until forum.EOF
antal= forum("cnt")
------------------ essentitia preter non sans multiplicandum
Problemet är att jag bara ska visa dom där "ForumBel IS NULL" och sortera dom efter hur många subforum dom har, subforumen finns i samma tabell men har i ForumBel id numret till det forum som dom till hör(ett subforum däremot kan inte innehålla ytterligare subforum)
SELECT f1.ForumID,f1.ForumName,COUNT(f2.ForumID) AS cnt FROM devforum f1
LEFT OUTER JOIN devforum f2 ON f1.ForumID=F2.ForumBel
WHERE F1.ForumBel IS NULL
GROUP BY f1.ForumID,f1.ForumName
ORDER BY cnt DESC
------------------
/emission If you see someone without a smiley, give them your colon.
TACK emission, du kungen :e
Hur ska jag göra för att få samma funktion fast räkna efter antal som finns i en annan tabell?
Varje subforum har ett antal inlägg i Devtopics förenade genom att i Devtopics så finns ForumBel som innehar ID numret till det forum det tillhör, idag ser det ut så här:
SQL="Select * From DevForum Where ForumBel="& forum("ForumID") &" Order By "& Session("sort2")
Set subba=Conn.Execute(SQL)
Do Until subba.EOF
Set number = Conn.Execute("Select COUNT(TopicID) AS cnt FROM [DevTopics] WHERE [ForumBel] ="& subba("ForumID") &";")
ant= number("cnt")