webForumDet fria alternativet

Summera 2 COUNT

6 svar · 259 visningar · startad av Pikkenix

PikkenixMedlem sedan mars 2003132 inlägg
#1

Jag vill summera följande 2 COUNT, det fungerar tyvärr inte med att bara lägga till ett "+".
Körs på Access-databas.

...
COUNT(*) As svar, (SELECT COUNT(*) FROM tabell2 WHERE column = column2 AND column3 > '" & CStr(manaddatum) & "' AND column3 NOT IN (SELECT MEMBER_ID FROM tabell3 WHERE column4 <> 1)) AS fragor
...

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Det borde gå

 COUNT(*) +  (SELECT COUNT(*) FROM tabell2 WHERE column = column2 AND column3 > '" & CStr(manaddatum) & "' AND column3 NOT IN (SELECT MEMBER_ID FROM tabell3 WHERE column4 <> 1)) AS fragorOchSvar

Annars så får du visa hela frågan och även beskriva det fel som du får.

PikkenixMedlem sedan mars 2003132 inlägg
#3

Hela frågan:

strSql = "SELECT DISTINCT(R_AUTHOR) AS T_AUTHOR, COUNT(*) as svar, (SELECT COUNT(*) FROM FORUM_TOPICS WHERE T_AUTHOR = R_AUTHOR AND T_DATE > '" & CStr(manaddatum) & "' AND T_AUTHOR NOT IN (SELECT MEMBER_ID FROM FORUM_MEMBERS WHERE M_LEVEL <> 1)) AS tradar, COUNT(*) + (SELECT COUNT(*) FROM FORUM_TOPICS WHERE T_AUTHOR = R_AUTHOR AND T_DATE > '" & CStr(manaddatum) & "' AND T_AUTHOR NOT IN (SELECT MEMBER_ID FROM FORUM_MEMBERS WHERE M_LEVEL <> 1)) AS totalt FROM FORUM_REPLY WHERE R_DATE > '" & CStr(manaddatum) & "' AND R_AUTHOR NOT IN (SELECT MEMBER_ID FROM FORUM_MEMBERS WHERE M_LEVEL <> 1) GROUP BY R_AUTHOR ORDER BY COUNT(*) DESC"

Fungerar nu med "totalt" MEN jag vill sortera efter samma sak som "totalt" men det fungerar icke tycärr...

LarsGMedlem sedan dec. 200012 465 inlägg
#4
 strSql = "SELECT R_AUTHOR AS T_AUTHOR, COUNT(*) as svar, (SELECT COUNT(*) FROM FORUM_TOPICS WHERE T_AUTHOR = R_AUTHOR AND T_DATE > '" & CStr(manaddatum) & "' AND T_AUTHOR NOT IN (SELECT MEMBER_ID FROM FORUM_MEMBERS WHERE M_LEVEL <> 1)) AS tradar, COUNT(*) + (SELECT COUNT(*) FROM FORUM_TOPICS WHERE T_AUTHOR = R_AUTHOR AND T_DATE > '" & CStr(manaddatum) & "' AND T_AUTHOR NOT IN (SELECT MEMBER_ID FROM FORUM_MEMBERS WHERE M_LEVEL <> 1)) AS totalt FROM FORUM_REPLY WHERE R_DATE > '" & CStr(manaddatum) & "' AND R_AUTHOR NOT IN (SELECT MEMBER_ID FROM FORUM_MEMBERS WHERE M_LEVEL <> 1) GROUP BY R_AUTHOR ORDER BY TOTALT DESC"

Ovanstående går bra om det inte är access då får ange ordningsnumret i select-listan för uttrycket istället för korrelationsnamnet.

Distinct är inte en funktion och det behövs inte alls eftersom du har group by.

PikkenixMedlem sedan mars 2003132 inlägg
#5

Är ju tyvärr access och jag vet att man inte kan sortera efter alias - och min ovanstående kod fungerar inte, så hur ska jag göra?

LarsGMedlem sedan dec. 200012 465 inlägg
#6
order by 4 desc

ange ordningsnumret i select-listan för uttrycket istället för korrelationsnamnet.

PikkenixMedlem sedan mars 2003132 inlägg
#7

Ahha, nu fattar jag, sorry

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb