Överkomplicerad SQL-query... [Löst]
Postat: 1 mars 2012, 20:31:39
Det jag vill åstadkomma är att få en summa av hur mycket komponenterna i ett visst projekt kommer kosta.
Såhär ser en query jag använde mig utav ut:
Med den queryn så får jag ut vad projektet kostar, om det bara är en av varje komponent i projektet.
Men i projects_data-tabellen finns det ett fält för varje komponent (projects_data_quantity) som anger hur många av komponenten som används i det projektet. Det antalet måste alltså multipliceras med priset för komponenten före det adderas med alla komponenter.
- I "data" finns priset (price), bland annat.
- Såhär ser "projects_data" ut:
Då ser vi att alla tre komponenter ska finnas med i projekt 11:
5 st 604, pris 10 -> Delsumma 50
4 st 321, pris 20 -> Delsumma 80
7 st 603, pris 10 -> Delsumma 70
Totalsumman för det projekte ska alltså bli: 50+80+70 = 200.
Hur gör jag en query som klarar det?
Måste jag kanske göra nån fler PHP While-sats eller något? Min skalle står helt still när det gäller någon lösning på det här problemet just nu...
Fråga om något är oklart!
Såhär ser en query jag använde mig utav ut:
Kod: Markera allt
"SELECT SUM(price) FROM data WHERE id in (SELECT projects_data_component_id FROM projects_data WHERE projects_data_project_id = "*ProjektID*")"
Men i projects_data-tabellen finns det ett fält för varje komponent (projects_data_quantity) som anger hur många av komponenten som används i det projektet. Det antalet måste alltså multipliceras med priset för komponenten före det adderas med alla komponenter.
- I "data" finns priset (price), bland annat.
Kod: Markera allt
id price
604 10
321 20
603 10
Kod: Markera allt
projects_data_id projects_data_owner_id projects_data_project_id projects_data_component_id projects_data_quantity
27 1 11 604 5
30 1 11 321 4
38 1 11 603 7
43 1 8 690 10
5 st 604, pris 10 -> Delsumma 50
4 st 321, pris 20 -> Delsumma 80
7 st 603, pris 10 -> Delsumma 70
Totalsumman för det projekte ska alltså bli: 50+80+70 = 200.
Hur gör jag en query som klarar det?

Måste jag kanske göra nån fler PHP While-sats eller något? Min skalle står helt still när det gäller någon lösning på det här problemet just nu...
Fråga om något är oklart!