|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 212 ![]() |
Bonjour,
Je souhaite, à l'aide d'une requête faite avec plusieurs jointures, sélectionner des tuples qui satisfassent une condition nécessitant un calcul. Je m'explique : je dispose grossièrement d'une table entrée1, d'une table entrée2 et d'une table retour, pour des articles. J'aimerais sélectionner les articles pour lesquels (entrée1.quantite + entree2.quantite) - sortie.quantite soit supérieur à 0. Cela est-il réalisable ? Merci pour votre aide. |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Peut-on voir le schéma des tables, un exemple de données pour chacun et le résultat attendu de la requête ? Parce que là, sans plus d'info, la réponse à ta question est "oui, sans doute", mais on n'est pas tellement plus avancé
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 212 ![]() |
je simplifie le schéma mais grossièrement j'ai cette structure
PRODUIT(produit_id, reference, ...) SORTIE1(sortie1_id, #produit_id, quantite) SORTIE2(sortie2_id, #produit_id, quantite) RETOUR(entree_id, #produit_id, quantite) J'aimerais sélectionner tous les produits qui remplissent la condition sortie1.quantite+sortie2.quantite-retour.quantite soit supérieur à 0 Merci |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Saluton,
Les clés étrangères #produit_id sont-elles UNIQUEs dans les tables SORTIE1, SORTIE2 et RETOUR ?
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 212 ![]() |
hugh oui elles le sont.
Mais il se peut que des produits n'aient pas d'entrée dans les tables ENTREE, SORTIE1 et SORTIE2 |
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Code sql :
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
||
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Citation:
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
|
00
|
|
|
#8 |
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 212 ![]() |
merci Maljuna Kris
je voulais dire la table RETOUR ... Thank you very much Petit ajout dans la table SORTIE1, je suis obligé de vérifier quelques conditions que je rajoute dans la clause where, mais quand ces conditions ne sont pas remplies, je perds les tuples de la table SORTIE2. Une idée ? (peut être faire une union de 2 requêtes ?) |
|
|
00
|
|
|
#9 | ||
|
Nouveau Membre du Club
![]() Inscription : mars 2009 Messages : 212 ![]() |
je dois vérifier dans la table SORTIE2 que le champ statut (que j'ai oublié de mentionner) soit dans un certain état.
Je rajoute donc la condition: Code :
J'aimerais que cette condition soit vérifiée uniquement si une ligne de la table est concernée |
||
|
|
00
|
|
|
#10 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
A tout hasard, ajoute le dans la clause ON de jointure de la table SORTIE2 au lieu de la mettre dans la clause WHERE. Ça peut optimiser, à voir.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#11 |
![]() ![]() |
Comme je l'explique dans mon blog, mettre une condition dans le where sur la table de droite d'une jointure externe à gauche revient à faire une jointure interne donc autant utiliser INNER JOIN !
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
Copyright © 2000-2012 - www.developpez.com