requete conditionnée

Le
eric.zzzz
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
eric.zzzz
Le #6387051
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...

Phil
Le #6386991
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


Michel_D
Le #6386861
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];


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...

Phil
Le #6385951
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];


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...


???


Michel_D
Le #6385861
"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];


???



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.


Publicité
Poster une réponse
Anonyme