Bonjour,
Voici le problème auquel je suis confronté:
Je reçoit du produit (poisson) et je souhaiterai trouver le rendement après transformation (filet ou vidée écaillé).
J'ai déjà une requête pour faire la somme des poids (merci galoir).
J'aimerai maintenant compléxifier un peu les choses. Dans la table DemDetails, il y a un champ "transfo" pour transfomation. la plupart du temps je ne fais qu'un seul type de transformation par noLot mais il arrive que j'en fasse plusieurs. le champ transformation comprend plusieurs valeurs mais restons sur 2 valeurs pour l'instant. Donc disons que le produit c'est du rouget, il peut y avoir soit du vidé écaillé rendement au environ de 90%, soit du filet avec un rendement avoisinant les 35% à contrôler.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 SELECT RE.noLot, RD.produit, Nz(SumPoidsDemDet) / SumRecetPoids AS RatioPoids FROM (Reception AS RE INNER JOIN (SELECT noLot, produit, SUM(Poids) AS SumRecetPoids FROM RecepDetails GROUP BY noLot, produit) AS RD ON RE.noLot = RD.noLot) LEFT JOIN (SELECT DD.noLot, produit, SUM(DP.PoidsDemDet) AS SumPoidsDemDet FROM DemDetails AS DD INNER JOIN DemPoids AS DP ON DD.noDemDetail = DP.noDemDetail GROUP BY DD.noLot, produit) AS D ON (RD.produit = D.produit) AND (RD.noLot = D.noLot) ORDER BY RE.noLot, RD.produit
Je cherche à faire quelque chose proche de l'exemple suivant: si je reçoit 100 kg de rouget et que je décide d'en travailler 50kg en filet et 50kg en vidé écaillé, alors quel est mon rendement de filet ? normalement : rdt filet = poids filet / (100 - poids vidé écaillé / 90%)
Maintenant, j'aimerai que la valeur de 90% soit récupérer dans une table RdtHisto avec 3 champs (produit, transfo, rdt), les 2 premiers champs servant de clé primaire.
je pense donc à la chose suivante, sur la colonne "SumRecetPoids" il faut que sur chaque numéro de lot (noLot) pour lequel il y a du filet, on retranche la somme des SumRecetPoids qui ne sont pas du filet.
Par ailleurs il faut faire attention à une chose, si sur un noLot je ne fais pas de filet mais juste du vidé écaillé, le rendement ne doit pas etre pris dans la table RdtHisto mais calculé comme dans la requête de galoir "Nz(SumPoidsDemDet) / SumRecetPoids".
En gros, le filet est tout le temps calculé mais le reste n'est calculé que si il n'y a pas de filet.
Je ne sais pas si c'est compréhensible ce que je raconte :-)
Merci d'avance à celui ou celle qui pourra m'aider.
Partager