Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

requete conditionnée

5 réponses
Avatar
eric.zzzz
Bonjour,
J'ai une table des effectifs par classe des =E9coles de ma r=E9gion (5
d=E9partements)
A partir de cette table, j'ai cr=E9=E9 une requete du genre :
"PARAMETERS [saisir le code de l'=E9cole] Value;
SELECT code_ecole, nom_ecole, adresse, code_postal, effectif...
WHERE code_ecole =3D [saisir le code de l'=E9cole];"
Dans cette requete, en plus de la colonne des effectifs d'une =E9cole
donn=E9e, je souhaiterais rajouter une colonne des effectifs du
d=E9partement correspondant =E0 cette =E9cole.
Comment faire (de pr=E9f=E9rence sans code VB) ? Cr=E9er une requete pour
chaque d=E9partement (avec SELECT left(code_postal,2) As d=E9partement)
et comment faire apr=E8s ??

Merci d'avance
Eric

5 réponses

Avatar
eric.zzzz
On 22 oct, 16:47, wrote:
Bonjour,
J'ai une table des effectifs par classe des écoles de ma région (5
départements)
A partir de cette table, j'ai créé une requete du genre :
"PARAMETERS [saisir le code de l'école] Value;
SELECT code_ecole, nom_ecole, adresse, code_postal, effectif...
WHERE code_ecole = [saisir le code de l'école];"
Dans cette requete, en plus de la colonne des effectifs d'une école
donnée, je souhaiterais rajouter une colonne des effectifs du
département correspondant à cette école.
Comment faire (de préférence sans code VB) ? Créer une requete pour
chaque département (avec SELECT left(code_postal,2) As département)
et comment faire après ??

Merci d'avance
Eric


C'est peut être pas important, mais j'ai oublié de précisé que les
données sont par classe, le select complet donne :
SELECT code_ecole, nom_ecole, adresse, code_postal, classe, effectif.
Ce qui fait que je dois avoir le total des classes par département
dans ma requete...

Avatar
Phil
On 22 oct, 16:47, wrote:
Bonjour,
J'ai une table des effectifs par classe des écoles de ma région (5
départements)
A partir de cette table, j'ai créé une requete du genre :
"PARAMETERS [saisir le code de l'école] Value;
SELECT code_ecole, nom_ecole, adresse, code_postal, effectif...
WHERE code_ecole = [saisir le code de l'école];"
Dans cette requete, en plus de la colonne des effectifs d'une école
donnée, je souhaiterais rajouter une colonne des effectifs du
département correspondant à cette école.
Comment faire (de préférence sans code VB) ? Créer une requete pour
chaque département (avec SELECT left(code_postal,2) As département)
et comment faire après ??

Merci d'avance
Eric


C'est peut être pas important, mais j'ai oublié de précisé que les
données sont par classe, le select complet donne :
SELECT code_ecole, nom_ecole, adresse, code_postal, classe, effectif.
Ce qui fait que je dois avoir le total des classes par département
dans ma requete...


Je te suggère de créer deux requètes complémentaires
la première une selection identique à la table d'origine en ajoutant un
champ calculé du num du département tel que tu l'as décrits.
la seconde une requète de regroupement basée sur la première requète
avec uniquement les champs département et effectif avec la fonction
regroupement pour le code du département et somme pour effectif
tu obtiens la liste des effectifs par département.

puis enfin tu reprend ta requète initiale tu la bases sur la première
requète à laquelle tu ajoutes la seconde en liant les tables par le
champs département et tu obtiendras ce que tu cherches.

en résumé une requète liste complète avec le champ département calculé
ajouté qui sert de source pour calculer la seconde. puis les deux liées
par le code département qui te permettent de faire fonctionnner ta
sélection de classe avec les données du départment en regard.

Cà devrait fonctionner.

Bonne réception
Phil


Avatar
Michel_D
Bonjour,

Regarde si ces 2 requêtes conviennent :

La requête qui somme l'effectif d'une classe par département :

RequeteDep
SELECT Left([code_postal],2) AS Dept, classe, Sum(effectif) AS NbDep
FROM TaTable
GROUP BY Left([code_postal],2), classe;

et la 1ère requête modifiée :

PARAMETERS [saisir le code de l'école] Value;
SELECT T.[code_ecole], T.[nom_ecole], T.adresse, T.[code_postal],
T.classe, T.effectif, R.NbDep AS EffectifDepartement
FROM TaTable AS T INNER JOIN RequeteDep AS R
ON T.classe=R.classe
WHERE T.[code_ecole] = [saisir le code de l'école];


a écrit dans le message de news:
On 22 oct, 16:47, wrote:
Bonjour,
J'ai une table des effectifs par classe des écoles de ma région (5
départements)
A partir de cette table, j'ai créé une requete du genre :
"PARAMETERS [saisir le code de l'école] Value;
SELECT code_ecole, nom_ecole, adresse, code_postal, effectif...
WHERE code_ecole = [saisir le code de l'école];"
Dans cette requete, en plus de la colonne des effectifs d'une école
donnée, je souhaiterais rajouter une colonne des effectifs du
département correspondant à cette école.
Comment faire (de préférence sans code VB) ? Créer une requete pour
chaque département (avec SELECT left(code_postal,2) As département)
et comment faire après ??

Merci d'avance
Eric


C'est peut être pas important, mais j'ai oublié de précisé que les
données sont par classe, le select complet donne :
SELECT code_ecole, nom_ecole, adresse, code_postal, classe, effectif.
Ce qui fait que je dois avoir le total des classes par département
dans ma requete...

Avatar
Phil
Bonjour,

Regarde si ces 2 requêtes conviennent :

La requête qui somme l'effectif d'une classe par département :

RequeteDep
SELECT Left([code_postal],2) AS Dept, classe, Sum(effectif) AS NbDep
FROM TaTable
GROUP BY Left([code_postal],2), classe;

et la 1ère requête modifiée :

PARAMETERS [saisir le code de l'école] Value;
SELECT T.[code_ecole], T.[nom_ecole], T.adresse, T.[code_postal],
T.classe, T.effectif, R.NbDep AS EffectifDepartement
FROM TaTable AS T INNER JOIN RequeteDep AS R
ON T.classe=R.classe
WHERE T.[code_ecole] = [saisir le code de l'école];


a écrit dans le message de
news: On 22 oct,
16:47, wrote:
Bonjour,
J'ai une table des effectifs par classe des écoles de ma région (5
départements)
A partir de cette table, j'ai créé une requete du genre :
"PARAMETERS [saisir le code de l'école] Value;
SELECT code_ecole, nom_ecole, adresse, code_postal, effectif...
WHERE code_ecole = [saisir le code de l'école];"
Dans cette requete, en plus de la colonne des effectifs d'une école
donnée, je souhaiterais rajouter une colonne des effectifs du
département correspondant à cette école.
Comment faire (de préférence sans code VB) ? Créer une requete pour
chaque département (avec SELECT left(code_postal,2) As département)
et comment faire après ??

Merci d'avance
Eric


C'est peut être pas important, mais j'ai oublié de précisé que les
données sont par classe, le select complet donne :
SELECT code_ecole, nom_ecole, adresse, code_postal, classe, effectif.
Ce qui fait que je dois avoir le total des classes par département
dans ma requete...


???


Avatar
Michel_D
"Phil" a écrit dans le message de news:
Bonjour,

Regarde si ces 2 requêtes conviennent :

La requête qui somme l'effectif d'une classe par département :

RequeteDep
SELECT Left([code_postal],2) AS Dept, classe, Sum(effectif) AS NbDep
FROM TaTable
GROUP BY Left([code_postal],2), classe;

et la 1ère requête modifiée :

PARAMETERS [saisir le code de l'école] Value;
SELECT T.[code_ecole], T.[nom_ecole], T.adresse, T.[code_postal],
T.classe, T.effectif, R.NbDep AS EffectifDepartement
FROM TaTable AS T INNER JOIN RequeteDep AS R
ON T.classe=R.classe
WHERE T.[code_ecole] = [saisir le code de l'école];


???



Pour ceux qui n'ont pas compris, cela veut dire qu'il y a une erreur,
car la 2ème requête est incomplète puisque la jointure ne se fait
QUE sur la classe et il manque donc l'info sur le département pour
pouvoir rapatrier la bonne information de la 1ère requête, je vous
laisse donc faire la correction qui s'impose.