Les gars ce qui ne va pas avec cette requête SQL:MySQL GROUP BY et JOIN
$sql = "SELECT
res.Age,
res.Gender,
answer.*,
$get_sum,
SUM(CASE WHEN res.Gender='Male' THEN 1 else 0 END) AS males,
SUM(CASE WHEN res.Gender='Female' THEN 1 else 0 END) AS females
FROM Respondents AS res
INNER JOIN Answers as answer
ON answer.RespondentID=res.RespondentID
INNER JOIN Questions as question
ON answer.Answer=question.id
WHERE answer.Question='Q1'
GROUP BY res.Age
ORDER BY res.Age ASC";
la get_sum $ est un tableau de déclaration sql provenant d'une autre table:
$sum[]= "SUM(CASE WHEN answer.Answer=".$db->f("id")." THEN 1 else 0 END) AS item".$db->f("id");
$get_sum = implode(', ', $sum);
la requête ci-dessus retour ces valeurs :
Age: 20
item1 0
item2 1
item3 1
item4 1
item5 0
item6 0
Subtotal for Age 20 3
Age: 24
item1 2
item2 2
item3 2
item4 2
item5 1
item6 0
Subtotal for Age 24 9
Il devrait retourner:
Subtotal for Age 20 1
Subtotal for Age 24 2
Dans mes données d'échantillon il y a 3 répondants 2 ont 24 ans et l'autre 20 ans. Je veux totaliser le nombre de répondants par âge.
Veuillez essayer de réduire votre requête au minimum absolu. Afficher également les résultats de la requête sql Je suppose que vos résultats proviennent de votre application? – lexu