Code : Tout sélectionner
GROUP BY CODE_JEUNE, NOM_JEUNE, PRENOM_JEUNE
Code : Tout sélectionner
SELECT
CODE_JEUNE, NOM_JEUNE, PRENOM_JEUNE,
CODE_GROUPE, NB_CRENEAU
FROM ABSENCE_CONSTATEE INNER JOIN JEUNE ON ABSENCE_CONSTATEE.CODE_JEUNE = JEUNE.CODE_JEUNE
WHERE CODE_JEUNE < 10
GROUP BY CODE_JEUNE, NOM_JEUNE, PRENOM_JEUNECode : Tout sélectionner
GROUP BY CODE_JEUNE, NOM_JEUNE, PRENOM_JEUNE,
CODE_GROUPE, NB_CRENEAUCode : Tout sélectionner
SELECT
JEUNE.CODE_JEUNE, JEUNE.PRENOM_JEUNE, JEUNE.NOM_JEUNE,
ABSENCE_CONSTATEE.NB_CRENEAU,
SUM(ABSENCE_CONSTATEE.NB_CRENEAU) AS NOMBRE
FROM ABSENCE_CONSTATEE INNER JOIN JEUNE ON ABSENCE_CONSTATEE.CODE_JEUNE = JEUNE.CODE_JEUNE
GROUP BY JEUNE.NOM_JEUNE
Code : Tout sélectionner
$Sql = "SELECT
j.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE
FROM ABSENCE_CONSTATEE a, JEUNE j
WHERE j.CODE_JEUNE < 10
GROUP BY j.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE";Code : Tout sélectionner
$Sql = "SELECT
j.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE
FROM ABSENCE_CONSTATEE a, JEUNE j
WHERE j.CODE_JEUNE < 10
GROUP BY j.CODE_JEUNE, j.NOM_JEUNE";$Sql = "SELECT
j.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE,
SUM(a.NB_CRENEAU) AS heures
FROM ABSENCE_CONSTATEE a, JEUNE j
WHERE j.CODE_JEUNE < 10
GROUP BY j.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE, heures";
me donne encore une erreur alors que je cite tous les champs.$Sql = "SELECT
j.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE,
SUM(a.NB_CRENEAU) AS heures
FROM ABSENCE_CONSTATEE a, JEUNE j
WHERE j.CODE_JEUNE < 10 AND a.CODE_JEUNE = j.CODE_JEUNE
GROUP BY j.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE, heures";
C'est surtout que sans jointure tu ne peux pas faire de GROUP BY. Le controleur syntaxique s'apercoit en effet qu'il a un select sur 2 tables :SSi, tu peut joindre des tables dans la clause WHERE mais il me semble que, sous MySQL, l'optimisation est meilleure avec un JOIN
Code : Tout sélectionner
SELECT a.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE, SUM(a.NB_CRENEAU) AS heures
FROM ABSENCE_CONSTATEE a
LEFT JOIN JEUNE j ON a.CODE_JEUNE = j.CODE_JEUNE
WHERE j.CODE_JEUNE < 10
GROUP BY a.CODE_JEUNE;
Code : Tout sélectionner
SELECT a.1, a.2, b.1
FROM a JOIN b ON a.id = b.idCode : Tout sélectionner
SELECT a.1, a.2, b.1
FROM a, b
WHERE a.id = b.idJe ne dis pas qu'il n'y a pas jointuresi, il y a une jointure.
Ok mais : Dynamic SQL Error SQL error code = -104 invalid column reference inC'est surtout que sans jointure tu ne peux pas faire de GROUP BY. Le controleur syntaxique s'apercoit en effet qu'il a un select sur 2 tables :SSi, tu peut joindre des tables dans la clause WHERE mais il me semble que, sous MySQL, l'optimisation est meilleure avec un JOIN
Au final ta requete devrait reseembler aCode : Tout sélectionner
SELECT a.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE, SUM(a.NB_CRENEAU) AS heures FROM ABSENCE_CONSTATEE a LEFT JOIN JEUNE j ON a.CODE_JEUNE = j.CODE_JEUNE WHERE j.CODE_JEUNE < 10 GROUP BY a.CODE_JEUNE;
$Sql = "SELECT a.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE, SUM(a.NB_CRENEAU) AS heures
FROM ABSENCE_CONSTATEE a
LEFT JOIN JEUNE j ON a.CODE_JEUNE = j.CODE_JEUNE
WHERE j.CODE_JEUNE < 10
GROUP BY a.CODE_JEUNE, j.NOM_JEUNE, j.PRENOM_JEUNE, heures;";