Ciao a tutti.
Non riesco ad aggiornare correttamente una tabella tramite una query UPDATE che richiama una query SELECT.
Tutti i records della tabella vengono aggiornati da un valore, cioè quello del primo calcolo.
Ecco la query:
codice:
UPDATE tbl_payoff t
JOIN
(
SELECT a1.area, (sum1/sum2)*15000 `totalSum`
FROM (
SELECT area,
COUNT(*) `sum1`
FROM tbl_sales
WHERE (YEAR(date_of_sale)='2012')
GROUP BY area
)a1
JOIN
(
SELECT area,
SUM( Ordinary_Work_hours + Extra_Work_hours ) `sum2`
FROM tbl_sellers
WHERE current_year = '2012'
GROUP BY area
) a2
ON a1.area = a2.area
) q
SET payoff = (q.totalSum)
WHERE 1;
Come dovrebbe essere:
codice:
area totalSum
A 157.0681
B 131.5789
C 384.6154
Come invece aggiorna:
codice:
area totalSum
A 157.0681
B 157.0681
C 157.0681
Cosa sbaglio?
Grazie