26/06/10 14:38
giocala88
Salve ragazzi, ho questo il seguente problema: ho implementato in mysql una tabella Prodotto, con due dei campi prezzo e data. Vorrei aggiornare lo stesso campo prezzo di tutti i prodotti che hanno la differenza giorni tra la data odierna e quella del prodotto minore o uguale a 15 oppure, nel caso in cui non si presentasse questa condizione, aggiornare il prezzo del prodotto con la differenza giorni minore.
La subquery
va alla grande.
Il problema è l'implementazione della funzione di aggiornamento riportata qui di seguito:
infatti mi da il seguente errore:
"ERROR 1093 (HY000): You can't specify target table 'Prodotto' for update in FROM clause"
Dove sbaglio? ... Come posso risolvere questo problema?
Grazie a tutti.
La subquery
SELECT (prezzo*45/100) as offerta FROM Prodotto WHERE codice_reparto = 'FRIGO' AND (DATEDIFF(data, CURDATE()) <= 15 OR DATEDIFF(data, CURDATE()) = (SELECT min(DATEDIFF(data, CURDATE())) FROM Prodotto))
va alla grande.
Il problema è l'implementazione della funzione di aggiornamento riportata qui di seguito:
$query = ("UPDATE Prodotto SET prezzo = (SELECT (prezzo*45/100) as offerta FROM Prodotto WHERE codice_reparto = 'FRIGO' AND (DATEDIFF(data, CURDATE()) <= 15 OR DATEDIFF(data, CURDATE()) = (SELECT min(DATEDIFF(data, CURDATE())) FROM Prodotto)))");
infatti mi da il seguente errore:
"ERROR 1093 (HY000): You can't specify target table 'Prodotto' for update in FROM clause"
Dove sbaglio? ... Come posso risolvere questo problema?
Grazie a tutti.
aaa