jag har skrivit denna query Google is your friend Du ska lägga till users.description under GROUP BY också. hehe.. om det vore så enkelt.. Den tilllåter inte datatypen text under group by <code>MS SQL och COUNT med GROUP och JOINS
<code>
SELECT users.id, users.userName, COUNT(comments.id) AS commentCount, COUNT(articles.id) AS articleCount
FROM users INNER JOIN
articles ON articles.userId = users.id INNER JOIN
comments ON users.id = comments.userId
WHERE (users.id = 2)
GROUP BY users.id, users.userName
</code>
Denna query borde returnera användarnamn för användare med Id 2, samt hur många artiklar han skrivit samt hur många kommentaren har skrivit
Men count funkar ju inte, istället för att COUNTA antalet comments.id så tar den comments * articles
så både commentCount och articleCount kommer få värdet 6 (om det finns 3 artiklar och två kommentarer)
Hur fixar man detta?
Jag har ett till problem jag vill även hämta ut users.description som är av datatypen text men då klagar mssql på att man inte kan använda det GROUP BY!?Sv: MS SQL och COUNT med GROUP och JOINS
COUNT(DISTINCT comments.id)
men jag fattarfortfarande inte hur jag ska få ut en datatyp TEXT hur en group by???Sv:MS SQL och COUNT med GROUP och JOINS
/JohanSv: MS SQL och COUNT med GROUP och JOINS
Sv:MS SQL och COUNT med GROUP och JOINS
SELECT users.id, users.userName, users.description,
(select count(*)
from articles
where articles.userId = users.id) as articleCount,
(select count(*)
from comments
where users.id = comments.userId) AS commentCount
FROM users
WHERE users.id = 2
</code>