|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Renand Baur Inscription : décembre 2009 Messages : 41 ![]() |
Bonjour à tous, voilà je commence à craquer sur une requête.
Je dispose de 3 tables. 1 table avec des produits (products) 1 table avec des tissus (tissues) 1 table de relation avec quelques données complémentaires sur la relation (productrepartisions) (je mets ici les champs qui m'occupent) +-------------+ | products | +--------------+ | id | | consumption | +---------------+ +---------+ | tissues | +---------+ | id | | stock | +---------+ +---------------------+ | productrepartisions | +---------------------+ | id | | productid | | tissueid | | quantity | | quantityweb | +---------------------+ Je dois trouver le moyen de calculer la consommation faite pour la déduire de tissues.stock en partant de l'id d'un tissu. je suis parti dans cette direction : Code :
Il est vrai que je ne suis pas un killer niveau SQL, mais pour le coup je suis perdu. Mon raisonnement étant de partir de calculs effectués dans des sous-requêtes pour disposer des valeurs nécessaires. Toute votre aide sera grandement appréciée. D'avance merci |
||
|
|
00
|
|
|
#2 | |||
![]() ![]() |
Citation:
Code :
__________________
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
|
|
|
#3 | |||
|
Invité régulier
![]() Renand Baur Inscription : décembre 2009 Messages : 41 ![]() |
Citation:
Outch/// En fait oui, j'ai oublié de parler d'une table, et d'un détail. La table en question me permet de connaitre le nombre de tailles prévues pour le vêtement, ce qui sera le multiplicateur du résultat de la requête présente au-dessus. Et le détail est qu'au final, il me faut une valeur numérique, en fait cette requête est une propriété calculée d'un objet. En gros, quand j'instancie le tissu, je doit pourvoir retourner la valeur pas un simple tissues.consumption. Mon framework le gère, mais il faut qu'il n'y ait qu'une seule ligne en retour. Pour le nombre de tailles, j'ai effectivement une table nommée productparts +----------------+ | productsparts | | id | | productid | | partid | | modelsizeid | +----------------+ Je compte faire un COUNT dessus pour trouver le multiple qui convient. |
|||
|
|
00
|
|
|
#4 | |
![]() ![]() |
Citation:
Tu peux expliquer mieux la structure de la BDD et le besoin ?
__________________
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
|
|
|
#5 | ||
|
Invité régulier
![]() Renand Baur Inscription : décembre 2009 Messages : 41 ![]() |
En gros,
en partant sur cette variante Code :
Il me faudra retourner le total. Je ne sais pas trop comment intégrer proprement la sous-requête dans la première, en fait. |
||
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Renand Baur Inscription : décembre 2009 Messages : 41 ![]() |
Oui il me faut la consommation totale de tous les produits pour un tissu en une valeur.
|
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Inscription : mars 2005 Messages : 1 565 ![]() |
|
|
|
00
|
|
|
#8 |
![]() ![]() |
Bizarre comme besoin !
Si ton tissu consomme du fil (25 000 mètres), de la teinture (2 litres), tu vas additionner les mètres et les litres ? Lis la phrase en bleu de ma signature et applique son principe parce que j'ai toujours du mal à comprendre !
__________________
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
|
|
|
#9 | ||
|
Invité régulier
![]() Renand Baur Inscription : décembre 2009 Messages : 41 ![]() |
Pardon, reprenons..
pour la structure, ça se base donc sur quatre tables. Code :
Les consommations dont je parle sont des mètres de tissus. Chaque produit est paramétré avec une valeur de consommation moyenne (products.consumption) ex : 0.16 ou 1.50... Je cherche à projeter sur le stock initial (tissues.stock) la consommation dans un tissu de tous les produits utilisant ce tissu. Pour ce faire, j'ai donc une table products où sont référencés les produits, la conso moyenne pour ce produit. Puis une liste de tissus avec pour chacun un stock initial (des mètres linéaires). Ensuite, j'ai deux tables d'associations. L'une permettant d'associer les produits avec les tailles à confectionner. Il s'agit de productparts. Pour chaque taille de produit, j'ai une entrée. Enfin, une autre table d'association (productrepartitions) qui permet de saisir, pour une association tissu / produit, les quantités à fabriquer (il s'agit de deux valeurs pour une question d'organisation, mais on considère le total des deux, c'est juste séparé pour les besoins de l'application). Ce que je veux faire : Pour le tissu 1, calculer le nombre total de produits à fabriquer (productrepartitions.quatity + productrepartitions.quantityweb), le multiplier par le nombre de tailles à faire (Count(productparts.modelsizeid) et multiplier cela par la consommation moyenne du produit products.consumption. Le résultat devant être une valeur numérique (pas un recordset avec plusieurs résultats). et Merci pour votre aide.... |
||
|
|
00
|
|
|
#10 | |||
![]() ![]() |
Avec cette phrase, ça devient déjà plus clair :
Citation:
Si j'ai tout compris, essaie cette requête : Code :
__________________
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 ! |
|||
|
10
|
|
|
#11 | ||
|
Invité régulier
![]() Renand Baur Inscription : décembre 2009 Messages : 41 ![]() |
Code :
|
||
|
|
00
|
|
|
#12 | ||
|
Invité régulier
![]() Renand Baur Inscription : décembre 2009 Messages : 41 ![]() |
j'obtiens un résultat valide en supprimant
* COUNT(pp.modelsizeid) Soit Code :
MERCI !!!!! vraiment merci. |
||
|
|
00
|
|
|
#13 |
![]() ![]() |
Oui effectivement, le comptage ne semble pas nécessaire.
__________________
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
|
|
|
#14 | ||
|
Invité régulier
![]() Renand Baur Inscription : décembre 2009 Messages : 41 ![]() |
pour vraiment laisser une trace propre, j'ai ajouté un modification afin de tenir compte des valeurs NULL dans les quantités
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com