Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Query aggiornamento con dati da altra query
venerdì 05 settembre 2008 - 00.12
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
flight
Profilo
| Newbie
4
messaggi | Data Invio:
ven 5 set 2008 - 00:12
Ciao a tutti, sono nuovo del forum e questo è il mio primo post.
Veniamo al problema: sto modificando un db in access di un amico e dovrei eseguire l'aggiornamento di un campo di una tabella prendendo i dati da una seconda query.
La prima query seleziona alcun valori da varie tabelle in base a un arco di tempo inserito tramite una maschera e calcola la somma del campo qta basata su un raggruppamento fatto sul campo Articolo
Data Articolo Somma: sum(Qta)
11/05/08 Pippo 50
12/05/08 Minnie 25
La seconda query dovrebbe aggiornare i dati di una tabella sottraendo la Somma all'articolo corrispondente.
es, da così:
Articolo Qta
Pippo 200
Pippo 100
Minnie 300
a così, prendendo come dati da sottrarre quelli della prima query
Articolo Qta
Pippo 150
Pippo 100
Minnie 275
Ho provato con alcune soluzioni trovate in rete ma non ho ottenuto alcun risultato. Alcuni dicono che si può fare con un'unica query ma non ci sono riuscito causa errori di sintassi.
aabruzzese
Profilo
| Junior Member
89
messaggi | Data Invio:
ven 5 set 2008 - 00:45
Ciao,
Scusami perche io in Italiano ormai non scrivo pui da tanti anni, ma cmq.
Poi provare di fare un UPDATE con una SubQuery sul campo da aggiornare.
Essempio semplice:
UPDATE employee
SET salary = (SELECT AVG(salary) FROM employee);
Prova qualcosa di semplice al innizio.
Ciao
Angelo
Angelo Abruzzese
flight
Profilo
| Newbie
4
messaggi | Data Invio:
ven 5 set 2008 - 09:09
Intanto grazie per la risposta. Ho provato a fare alcune prove e funziona tutto quando la cosa è semplice è quando la complico che le cose non vanno.
Inizialmente avevo fatto così:
UPDATE tArticoliU SET tArticoliU.Litri = tArticoliU.Litri-(SELECT tDDT.Data, tVociDDT.IdArticolo, Sum([quantità]*[LitriXunità]) AS TotLitri
FROM tDDT INNER JOIN (tContenitori INNER JOIN tVociDDT ON tContenitori.Id = tVociDDT.UM) ON tDDT.Numero = tVociDDT.NumeroDDT
GROUP BY tDDT.Data, tVociDDT.IdArticolo
HAVING (((tDDT.Data)=Date())))
WHERE (((tArticoliU.IdArticolo)=IdArticolo));
Ma la cosa non va perchè nella sottoquery la select deve avere un solo campo, quaindi l'ho modificata così:
UPDATE tArticoliU SET tArticoliU.Litri = tArticoliU.Litri-(SELECT Sum([quantità]*[LitriXunità]) AS TotLitri
FROM tDDT INNER JOIN (tContenitori INNER JOIN tVociDDT ON tContenitori.Id = tVociDDT.UM) ON tDDT.Numero = tVociDDT.NumeroDDT
GROUP BY tDDT.Data, tVociDDT.IdArticolo
HAVING (((tDDT.Data)=Date())))
WHERE (((tArticoliU.IdArticolo)=IdArticolo));
Ma mi da l'errore: Per l'operazione è necessaria una query aggiornabile.
Dove sbaglio?
aabruzzese
Profilo
| Junior Member
89
messaggi | Data Invio:
ven 5 set 2008 - 11:34
Ciao,
Dimmi non si tratta di diritti di accesso ?
Angelo Abruzzese
flight
Profilo
| Newbie
4
messaggi | Data Invio:
ven 5 set 2008 - 15:04
Non credo in quanto con delle query semplici mi modifica tranquillamente i dati della tabella. Forse sbaglio sintassi, ma non saprei come altro fare. Con 2 query separate non fa nulla anzi chide i parametri di aggiornamento con delle textbox (questo credo lo faccia perchè non riesce a prelevare i dati dalla prima query che selezioni i dati da aggiornare), con una singola da errore. Non so più cosa fare.
aabruzzese
Profilo
| Junior Member
89
messaggi | Data Invio:
ven 5 set 2008 - 16:34
Ai provato la subquery da solo per vedere che in fatto ti risultano delle righe?
Io vado sempre con TRIAL and ERRROR fino a quando si riesce a indovinare dove e il problema.
Angelo Abruzzese
flight
Profilo
| Newbie
4
messaggi | Data Invio:
ven 5 set 2008 - 19:19
Certo! Ho provato e la subquery e funziona benissimo! Il problema sta nella query di update.
Ritenterò questo week-end e vedo se riesco a fare qualcosa.
Intanto grazie per il supporto.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !