Mon projet concerne une bijouterie et j'essaie de trouver le produxt avec le max Profit.Comment trouver Profit entre 3 tables différentes
J'ai 3 tables qui me donne l'info:
VENTES Tableau:
salesid productid Quantity Price
11001 13001 4 5
11002 13002 6 10
11003 13003 5 16
.
.
11012 13012 7 15
table RETOUR:
salesid productid Quantity Price
11003 13003 1 16
11007 13007 3 12
11008 13008 3 8
table ACHATS:
procurementid productid Quantity Price
100001 13001 10 2
100002 13002 10 2
.
.
100012 13012 10 2
Le bénéfice est donné à partir de est la formule:
Profit = Quantité * Prix (vente) - Quantité * Prix (Retour) - Quantité * Prix (achats)
Et est maintenant le problème ici. Je suis venu à ce jusqu'à présent
select a.productid,(a.quantity*a.price-b.quantity*b.price-c.quantity*c.price) as Profit
from sales as a ,return as b ,procurement as c
where a.productid = c.productid
GROUP BY productid
Dans cette situation, je ne reçois pas la bonne réponse. C'est parce que dans la table de retour je n'ai que 3 registres mais sur les autres tables j'en ai 12, donc quand il calcule le profit il utilise la table de retour entière pour chaque rangée des autres tables.
J'ai essayé d'utiliser max(Profit)
mais il n'a rien fait.
En fait, je ne sais pas comment je peux connecter les 3 registres de la table de retour afin qu'ils ne soient utilisés que lorsqu'ils le doivent. Quand j'ai essayé les jointures, beaucoup de lignes étaient nulles. Je pense que quelque chose doit être fait avec OUTER JOIN
ou quelque chose mais je ne sais pas quoi faire.
<3 <3 <3 <3 <3 <3 <3 <3 <3 <3 <3 <3 <3 <3 – user2432398
@ user2432398 - np, content de pouvoir aider. BTW - Je n'étais pas tout à fait sûr si vous avez besoin d'utiliser SUM - si vous avez seulement les 12 enregistrements dans vos tables (une relation 1-1), alors vous n'aurez pas besoin d'agrégats. Si toutefois votre tableau des ventes peut contenir plusieurs enregistrements par produit, examinez la réponse de Gordon en utilisant SUM. Sincères amitiés. – sgeddes