GNT sans publicité, site mobile, fonctionnalitées exclusives...

simplifier 4 requêtes

Le
zzzz
Bonjour,

A mon fichier des effectifs des écoles de l'année 2009 je dois ajouter
la colonne des effectifs de la table 2010.
Ma 1re requête :
SELECT Tab09.NUMEtab, Tab09.Niveau, Tab09.Eff2009, Tab10.Eff2010]
FROM Tab09 INNER JOIN Tab10 ON (Tab09.NUMEtab = Tab10.NUMEtab) AND
(Tab09.Niveau = Tab10.Niveau);

Mais comme des écoles ou des niveaux ont disparu en 2010 et que des
écoles ou des niveaux ont été créés en 2010, cette requête ne v=
a
garder que les écoles et niveaux communs aux 2 tables.
Ce que je fais : je crée une requête LEFT JOOIN et une RIGHT JOIN,
ensuite une requête UNION; soit 4 requêtes en tout.

Est-il possible de faire tout ça en une seule requête (ou minimiser)
Merci d'avance
Eric
Lire les 10 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Albéric
Le #23491751
Bonjour zzzzzzzzzz

La structure de votre base est mal conçue.
Désolé.
Il ne peut pas y avoir de tables temporelles (Tab08, TAb09, ...10, ...11...)
dans une SGBDR. C'est une construction à la "Excel"

Cdt, Albéric

"zzzz"
Bonjour,

A mon fichier des effectifs des écoles de l'année 2009 je dois ajouter
la colonne des effectifs de la table 2010.
Ma 1re requête :
SELECT Tab09.NUMEtab, Tab09.Niveau, Tab09.Eff2009, Tab10.Eff2010]
FROM Tab09 INNER JOIN Tab10 ON (Tab09.NUMEtab = Tab10.NUMEtab) AND
(Tab09.Niveau = Tab10.Niveau);

Mais comme des écoles ou des niveaux ont disparu en 2010 et que des
écoles ou des niveaux ont été créés en 2010, cette requête ne va
garder que les écoles et niveaux communs aux 2 tables.
Ce que je fais : je crée une requête LEFT JOOIN et une RIGHT JOIN,
ensuite une requête UNION; soit 4 requêtes en tout.

Est-il possible de faire tout ça en une seule requête (ou minimiser)
Merci d'avance
Eric
Gloops
Le #23492471
Bonjour,

Je suis certes de l'avis d'Albéric.
Je me dis que peut-être il n'a pas été tendre en ne proposant aucun e
piste pour chercher à remédier au problème dénoncé. En revanche , il faut
certes reconnaître que ça lui permet une qualité : la concision.



Il s'agit d'appliquer une méthode d'analyse, qui est un outil précieu x
pour se poser les bonnes questions.

Une fois que la première approche a fait retenir les notions d'étudia nt,
d'année et de filière, parmi les bonnes questions on trouve:
- un étudiant peut-il fréquenter plusieurs filières ?
- un étudiant peut-il avoir plusieurs années d'entrée à l'école ?
- connaissant son année d'entrée, connaît-on son année de sortie ? En
a-t-on besoin ?

Selon les réponses on peut être amené à maintenir les objets qu'o n avait
imaginés au départ, à les dissocier selon un critère, à les reg rouper en
précisant une propriété ...

Parmi les méthodes d'analyse couramment pratiquées on peut citer Meri se
et UML. Pour ma part j'ai davantage de pratique de Merise. Si j'en crois
les réactions des utilisateurs une fois mes bases fournies, ce n'est pa s
tout faux.

Alors j'ai fait une rapide recherche, et les quelques minutes que j'y ai
consacrées m'ont mené là :
http://www.commentcamarche.net/cont...intro.php3

La première page me paraissait lisible, il me semblait que c'était un
critère déterminant.

Ensuite, pour vraiment valider cette sélection, peut-être faudrait-il y
passer plus de temps.
Peut-être te laisser me dire ce que tu en penses peut s'avérer rentab le
comme emploi du temps.

Ensuite, il n'est pas impossible qu'il faille revenir voir où tu en es
de ton cas particulier. Et qu'il faille aussi tenir compte de combien
d'autres projets tu es susceptible d'avoir à prendre en charge, pour
soit t'accompagner dans l'assimilation d'une méthode, soit t'aider à
structurer l'exemple qui t'occupe aujourd'hui.

ça ne prend pas le même temps, et ça ne permet pas les mêmes chos es.
Je ne suis d'ailleurs pas certain d'avoir le temps d'aller au bout dans
les deux cas, mais il y aura bien quelqu'un pour prendre la suite.

___________________________________
zzzz a écrit, le 22/06/2011 17:12 :
Bonjour,

A mon fichier des effectifs des écoles de l'année 2009 je dois ajou ter
la colonne des effectifs de la table 2010.
Ma 1re requête :
SELECT Tab09.NUMEtab, Tab09.Niveau, Tab09.Eff2009, Tab10.Eff2010]
FROM Tab09 INNER JOIN Tab10 ON (Tab09.NUMEtab = Tab10.NUMEtab) AND
(Tab09.Niveau = Tab10.Niveau);

Mais comme des écoles ou des niveaux ont disparu en 2010 et que des
écoles ou des niveaux ont été créés en 2010, cette requête ne va
garder que les écoles et niveaux communs aux 2 tables.
Ce que je fais : je crée une requête LEFT JOOIN et une RIGHT JOIN,
ensuite une requête UNION; soit 4 requêtes en tout.

Est-il possible de faire tout ça en une seule requête (ou minimiser )
Merci d'avance
Eric
zzzz
Le #23496251
On 23 juin, 01:11, Gloops
Bonjour,

Je suis certes de l'avis d'Albéric.
Je me dis que peut-être il n'a pas été tendre en ne proposant aucun e
piste pour chercher à remédier au problème dénoncé. En revanche , il faut
certes reconnaître que ça lui permet une qualité : la concision.

Il s'agit d'appliquer une méthode d'analyse, qui est un outil précieu x
pour se poser les bonnes questions.

Une fois que la première approche a fait retenir les notions d'étudia nt,
d'année et de filière, parmi les bonnes questions on trouve:
- un étudiant peut-il fréquenter plusieurs filières ?
- un étudiant peut-il avoir plusieurs années d'entrée à l'école ?
- connaissant son année d'entrée, connaît-on son année de sortie ? En
a-t-on besoin ?

Selon les réponses on peut être amené à maintenir les objets qu'o n avait
imaginés au départ, à les dissocier selon un critère, à les reg rouper en
précisant une propriété ...

Parmi les méthodes d'analyse couramment pratiquées on peut citer Meri se
et UML. Pour ma part j'ai davantage de pratique de Merise. Si j'en crois
les réactions des utilisateurs une fois mes bases fournies, ce n'est pa s
tout faux.

Alors j'ai fait une rapide recherche, et les quelques minutes que j'y ai
consacrées m'ont mené là :http://www.commentcamarche.net/contents/m erise/concintro.php3

La première page me paraissait lisible, il me semblait que c'était un
critère déterminant.

Ensuite, pour vraiment valider cette sélection, peut-être faudrait-il y
passer plus de temps.
Peut-être te laisser me dire ce que tu en penses peut s'avérer rentab le
comme emploi du temps.

Ensuite, il n'est pas impossible qu'il faille revenir voir où tu en es
de ton cas particulier. Et qu'il faille aussi tenir compte de combien
d'autres projets tu es susceptible d'avoir à prendre en charge, pour
soit t'accompagner dans l'assimilation d'une méthode, soit t'aider à
structurer l'exemple qui t'occupe aujourd'hui.

ça ne prend pas le même temps, et ça ne permet pas les mêmes chos es.
Je ne suis d'ailleurs pas certain d'avoir le temps d'aller au bout dans
les deux cas, mais il y aura bien quelqu'un pour prendre la suite.

___________________________________


Ma question était purement SQL. Je ne peux pas faire ça sous Excel,
car en réalité, en amont et en aval des 4 requêtes dont j'ai parlé,
interviennent d'autre requêtes (et d'autres tables). Mon but était
d'alléger la durée de l'exécution de la requête finale.
3stone
Le #23499071
Salut,

"zzzz"
Bonjour,

A mon fichier des effectifs des écoles de l'année 2009 je dois ajouter
la colonne des effectifs de la table 2010.
Ma 1re requête :
SELECT Tab09.NUMEtab, Tab09.Niveau, Tab09.Eff2009, Tab10.Eff2010]
FROM Tab09 INNER JOIN Tab10 ON (Tab09.NUMEtab = Tab10.NUMEtab) AND
(Tab09.Niveau = Tab10.Niveau);

Mais comme des écoles ou des niveaux ont disparu en 2010 et que des
écoles ou des niveaux ont été créés en 2010, cette requête ne va
garder que les écoles et niveaux communs aux 2 tables.
Ce que je fais : je crée une requête LEFT JOOIN et une RIGHT JOIN,
ensuite une requête UNION; soit 4 requêtes en tout.

Est-il possible de faire tout ça en une seule requête (ou minimiser)
Merci d'avance
Eric
----------------

Essaie...

Select c1, c2, cx from(select c1, c2, c3 ... from ... )
union
select c1, c2, cx from(select c1, c2, c3 ... from ... )

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)
Gloops
Le #23501151
zzzz a écrit, le 24/06/2011 12:12 :
Ma question était purement SQL. Je ne peux pas faire ça sous Excel,
car en réalité, en amont et en aval des 4 requêtes dont j'ai parl é,
interviennent d'autre requêtes (et d'autres tables). Mon but était
d'alléger la durée de l'exécution de la requête finale.



Ah, si maintenant tu veux t'embarquer avec Excel, là je décroche ...
Publicité
Suivre les réponses
Poster une réponse
Anonyme