A voir également:
- [SQL]Problème trivial (multi interrogation)
- Point d'interrogation à l'envers ✓ - Forum Word
- ! À l'envers - Forum Bureautique
- Word (point d'interrogation inversé) ✓ - Forum Word
- Emoji point d'interrogation ✓ - Forum Samsung
- Sql (+) - Forum Programmation
8 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
5 févr. 2007 à 17:50
5 févr. 2007 à 17:50
Bonjour,
Ce qu'il te manque, c'est l'instruction "group by" :)
Elle permet de regrouper des résultats par critère.
Ainsi, essaie la requête suivante :
Xaveir
Ce qu'il te manque, c'est l'instruction "group by" :)
Elle permet de regrouper des résultats par critère.
Ainsi, essaie la requête suivante :
SELECT COMPOSITE, SUM(STK_VALUE) FROM T21010 WHERE FAMILY_CODE = 'MMARLY' GROUP BY COMPOSITEEn espérant que cela réponde à ton besoin,
Xaveir
WoW ca c'est de la réponse rapide :)
En effet, c'était tout con. J'aurais du y penser, on mettra ca sous le compte de la fatigue.
En passant. (j'en demane peut-être trop :) ).
J'essaie en fait de séparer les PF des composants. Malheureusement, les sous ensemble sont considérés comme composés (flag composite= 1) donc je devrais les extraire des PF et les mettre en MP le temps de ma requete. (au sens figuré hein, il faut surement pas touché au flag)
Imaginons qu'il n'y ai que 1 sous composant (code article SOUS_COMP). A quoi devrait ressembler le code ?
Dans tous les cas, un grand merci pour cette réponse.
En effet, c'était tout con. J'aurais du y penser, on mettra ca sous le compte de la fatigue.
En passant. (j'en demane peut-être trop :) ).
J'essaie en fait de séparer les PF des composants. Malheureusement, les sous ensemble sont considérés comme composés (flag composite= 1) donc je devrais les extraire des PF et les mettre en MP le temps de ma requete. (au sens figuré hein, il faut surement pas touché au flag)
Imaginons qu'il n'y ai que 1 sous composant (code article SOUS_COMP). A quoi devrait ressembler le code ?
Dans tous les cas, un grand merci pour cette réponse.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
5 févr. 2007 à 18:06
5 févr. 2007 à 18:06
Oula, euh, en fin d'après-midi, ma capacité d'abstraction faiblit, on va dire ^^
Tu peux me préciser un peu le problème ? Je n'ai pas trop compris ce qu'étaient les MP, PF, et autre sous-composants (de quoi ??)... Ni comment ils étaient représentés dans ta base...
Tu peux me préciser un peu le problème ? Je n'ai pas trop compris ce qu'étaient les MP, PF, et autre sous-composants (de quoi ??)... Ni comment ils étaient représentés dans ta base...
[SQL]Problème trivial (multi interrogation) Skoot (mardi 6 février 2007 à 09:32:27) Statut Non résolu
MP= Matière première
PF= produit fini
Toutes les infos se trouvent dans la même table. Ce qui différencie partiellement les MP des PF c'est que les MP ont un flag (COMPOSITE) à 1, ce qui veut dire qu'on y a associé une nomenclature.
Je dis partiellement car certains articles avec nomenclature ne sont pas vraiment des PF, ce sont des sous ensemble (c'est à dire qu'ils ont une nomenclature mais entrent eux même dans une nomenclature)
Donc il faudrait que j'arrive à exclure des PF ces sous ensembles pour ne pas fausser les résultats.
Comme je le disais la liste des sous ensemble est assez restreinte donc on pourrait les exclure 1 par 1. (Donc si tu me donne l'exemple pour 1, ca serait impec.
Merci d'avance
MP= Matière première
PF= produit fini
Toutes les infos se trouvent dans la même table. Ce qui différencie partiellement les MP des PF c'est que les MP ont un flag (COMPOSITE) à 1, ce qui veut dire qu'on y a associé une nomenclature.
Je dis partiellement car certains articles avec nomenclature ne sont pas vraiment des PF, ce sont des sous ensemble (c'est à dire qu'ils ont une nomenclature mais entrent eux même dans une nomenclature)
Donc il faudrait que j'arrive à exclure des PF ces sous ensembles pour ne pas fausser les résultats.
Comme je le disais la liste des sous ensemble est assez restreinte donc on pourrait les exclure 1 par 1. (Donc si tu me donne l'exemple pour 1, ca serait impec.
Merci d'avance
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
6 févr. 2007 à 09:59
6 févr. 2007 à 09:59
OK, je comprends mieux.
Est-ce que quelque chose de ce genre répond à ton problème ?
Xavier
Est-ce que quelque chose de ce genre répond à ton problème ?
SELECT COMPOSITE, SUM(STK_VALUE) FROM T21010 WHERE FAMILY_CODE = 'MMARLY' AND CODE_PRODUIT NOT IN ('SOUS_COMP',...) GROUP BY COMPOSITEDans le NOT IN, tu peux mettre soit la liste des sous-ensembles séparés par des virgules, soit une requête SQL, si tu sais en écrire une qui renvoie tous les CODE_PRODUIT des sous-ensembles.
Xavier
A nouveau un grand merci
Cela répon,d partiellement à mon problème.
En effet, d'après ce que je comprends de ta requete cela va exclure totalement les sous-composants de la requete or il faudrait plutot les exclure des composite =1 (alors qu'ils ont le flag a 1) et les rajouter dans les composites = 0.
Ou pq pas, créer une 3eme catégorie ou on les placerait :).
Enfin j'en demadne bcp :)
Cela répon,d partiellement à mon problème.
En effet, d'après ce que je comprends de ta requete cela va exclure totalement les sous-composants de la requete or il faudrait plutot les exclure des composite =1 (alors qu'ils ont le flag a 1) et les rajouter dans les composites = 0.
Ou pq pas, créer une 3eme catégorie ou on les placerait :).
Enfin j'en demadne bcp :)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
6 févr. 2007 à 10:15
6 févr. 2007 à 10:15
Désolé, mais là, en une seule requête, je ne vois pas comment faire...
Aie, je m'attendais à cette réponse un jour ou l'autre :).
Donc, dois je comprendre qu'on ne peut pas faire des requetes multiples ? Imaginons qu'ensuite j'aimerais, dans la même requete, sortir le nombre d'article que j'ai vendu à tel client.
Cette 2eme requete est en elle même très simple à faire mais comment faire pour qu'en une requete il me sorte d'abord le tableau avec mes composites 1 et 0 et également ce nombre d'article vendu?
Impossible ?
Donc, dois je comprendre qu'on ne peut pas faire des requetes multiples ? Imaginons qu'ensuite j'aimerais, dans la même requete, sortir le nombre d'article que j'ai vendu à tel client.
Cette 2eme requete est en elle même très simple à faire mais comment faire pour qu'en une requete il me sorte d'abord le tableau avec mes composites 1 et 0 et également ce nombre d'article vendu?
Impossible ?
Bon j'ai un peu cherché de mon coté.
L'instruction MINUS me semble impeccable pour arriver à sortir les semi ensemble e mes produits finis:
SELECT COMPOSITE, SUM(STK_VALUE)
FROM T21010
WHERE FAMILY_CODE = 'MMARLY' AND COMPOSITE='1'
GROUP BY COMPOSITE
MINUS
SELECT COMPOSITE, SUM(STK_VALUE)
FROM T21010
WHERE FAMILY_CODE = 'MMARLY' AND COMPOSITE='1'AND ITEM_CODE NOT IN ('MA3154004PERF')
GROUP BY COMPOSITE
Malheureusement, ca ne fonctionne pas. J'utilise une Base de donnée paradox. J'ai également essayé avec l'instruction EXCEPT mais tjs rien (ca me dit que l'utilisation du mot clef SELECT à la line 6 est erronée :(
L'instruction MINUS me semble impeccable pour arriver à sortir les semi ensemble e mes produits finis:
SELECT COMPOSITE, SUM(STK_VALUE)
FROM T21010
WHERE FAMILY_CODE = 'MMARLY' AND COMPOSITE='1'
GROUP BY COMPOSITE
MINUS
SELECT COMPOSITE, SUM(STK_VALUE)
FROM T21010
WHERE FAMILY_CODE = 'MMARLY' AND COMPOSITE='1'AND ITEM_CODE NOT IN ('MA3154004PERF')
GROUP BY COMPOSITE
Malheureusement, ca ne fonctionne pas. J'utilise une Base de donnée paradox. J'ai également essayé avec l'instruction EXCEPT mais tjs rien (ca me dit que l'utilisation du mot clef SELECT à la line 6 est erronée :(
Bon même si je parle tout seul je continue mes périgrinations:
En utilisant NOT IN j'arrive bien à enlever mes sous ensemble.
En utilisant UNION j'arrive bien à sortir mes 3 résultats: PF MP et PF-sous ensemble.
Malheureusement j'ai utilisé le NOT IN avec simplement un code article. Or il y en a toute une série. Donc je me susi amusé a faire une fonction qui recherche tous les sous ensemble:
SELECT DISTINCT B.DT_ITEM_CODE
FROM T21010 A
JOIN T21091 B ON (A.ITEM_CODE = B.DT_ITEM_CODE) WHERE A.COMPOSITE='1'
Pas de problème avec cette fonction. Les problèmes arrivent lorque je veux mettre cette fonction comme sous fonction de la première ( au lieu de mettre simplement le code article "sous ensemble" je met cette fonction:
SELECT COMPOSITE, SUM(STK_VALUE)
FROM T21010
WHERE FAMILY_CODE = 'MMARLY'
GROUP BY COMPOSITE
UNION
SELECT COMPOSITE, SUM(STK_VALUE)
FROM T21010
WHERE FAMILY_CODE = 'MMARLY' AND COMPOSITE='1'AND ITEM_CODE NOT IN (
SELECT DISTINCT B.DT_ITEM_CODE
FROM T21010 A
JOIN T21091 B ON (A.ITEM_CODE = B.DT_ITEM_CODE) WHERE A.COMPOSITE='1')
GROUP BY COMPOSITE
Ici, aucun message d'erreur mais des valeurs totalement surréalistes...
Mes questions sont donc: Avant je mettais après le NOT IN le code article entre ''. Ici je met une fonction. Est ce que le langage comprend ca ? Comrpend-t-il que l'ensemble des valeurs (code article) que ma sous fonction lui génère il doit tous les exclure avec l'aide du NOT IN ?
Mrci d'avance
Skoot
En utilisant NOT IN j'arrive bien à enlever mes sous ensemble.
En utilisant UNION j'arrive bien à sortir mes 3 résultats: PF MP et PF-sous ensemble.
Malheureusement j'ai utilisé le NOT IN avec simplement un code article. Or il y en a toute une série. Donc je me susi amusé a faire une fonction qui recherche tous les sous ensemble:
SELECT DISTINCT B.DT_ITEM_CODE
FROM T21010 A
JOIN T21091 B ON (A.ITEM_CODE = B.DT_ITEM_CODE) WHERE A.COMPOSITE='1'
Pas de problème avec cette fonction. Les problèmes arrivent lorque je veux mettre cette fonction comme sous fonction de la première ( au lieu de mettre simplement le code article "sous ensemble" je met cette fonction:
SELECT COMPOSITE, SUM(STK_VALUE)
FROM T21010
WHERE FAMILY_CODE = 'MMARLY'
GROUP BY COMPOSITE
UNION
SELECT COMPOSITE, SUM(STK_VALUE)
FROM T21010
WHERE FAMILY_CODE = 'MMARLY' AND COMPOSITE='1'AND ITEM_CODE NOT IN (
SELECT DISTINCT B.DT_ITEM_CODE
FROM T21010 A
JOIN T21091 B ON (A.ITEM_CODE = B.DT_ITEM_CODE) WHERE A.COMPOSITE='1')
GROUP BY COMPOSITE
Ici, aucun message d'erreur mais des valeurs totalement surréalistes...
Mes questions sont donc: Avant je mettais après le NOT IN le code article entre ''. Ici je met une fonction. Est ce que le langage comprend ca ? Comrpend-t-il que l'ensemble des valeurs (code article) que ma sous fonction lui génère il doit tous les exclure avec l'aide du NOT IN ?
Mrci d'avance
Skoot