Newsgroup: it.comp.appl.access
Titolo: update con criteri

per tornare ad un mio vecchio db dei rifornimenti...
ho una tabella veicoli ed una delle introduzioni di benzina
in quella dei veicoli ho un campo Kmpartenza in cui ho inserito i km dei 
veicoli quando sono partito col db
in quellqa dei rifornimenti oltre ad inserire importo litri etc, inserisco 
anche i km all'atto del rifornimento
vorrei fare in modo di aggiornare il campo kmpartenza nella tabella veicoli 
co i km presi dalla tabella rifornimenti, per ogni veicolo, per un periodo
specifico (normalmente un mese solare)
la tabella rifornimenti potrebbe anche non contenere introduzioni relativa a 
qualche veicolo che per esempio è rimasto fermo
quindi ho bisogno di aggiornare i km di quelli che hanno camminato.
Grazie 

 ha scritto nel messaggio

...
TabVeicoli INNER JOIN TabRifornimenti TabVeicoli 
.IDVeicolo=TabRifornimenti.IDVeicolo
...
WHERE KmPartenza<KmRifornimento
Potrebbe essere sufficiente anche la sola prima riga di queste dato che se 
c'è un rifornimento è ovvia la condizione WHERE
Saluti
Davide
-- 
www.gestionedati.com
 

 ha scritto nel messaggio

perdona la mia ignoranza..
ma con questo codice, posso aggiornare il campo KM PARTENZA della
tabella veicoli??
io ho creato la query di selezione che mi serve
SELECT T_Veicolo.Targa, T_Veicolo.KMPARTENZA,
Max(T_Rifornimento.KMFINALI) AS MaxDiKMFINALI
FROM T_Veicolo INNER JOIN T_Rifornimento ON T_Veicolo.Targa =
T_Rifornimento.ID_V
GROUP BY T_Veicolo.Targa, T_Veicolo.KMPARTENZA
WITH OWNERACCESS OPTION;
ma dovrei trasformarla in una di aggiornamento....

 --
www.gestionedati.com
perdona la mia ignoranza..
ma con questo codice, posso aggiornare il campo KM PARTENZA della
tabella veicoli??
io ho creato la query di selezione che mi serve
SELECT T_Veicolo.Targa, T_Veicolo.KMPARTENZA,
Max(T_Rifornimento.KMFINALI) AS MaxDiKMFINALI
FROM T_Veicolo INNER JOIN T_Rifornimento ON T_Veicolo.Targa =
T_Rifornimento.ID_V
GROUP BY T_Veicolo.Targa, T_Veicolo.KMPARTENZA
WITH OWNERACCESS OPTION;
ma dovrei trasformarla in una di aggiornamento....
---------------------------------------
Io credevo che il tuo problema fosse il criterio, non l'istruzione.
Se scegli il tipoquery aggironamento access te lo fa in automatico, 
comunque:
UPDATE TabVeicoli SET KmPercorsi=...
Ciao
Davide (Sib)
-- 
www.gestionedati.com
 

"Davide (Sib)" <sedavi...@Mtiscali.it> ha scritto nel messaggio 
news:46f632ec$0$10622$4faf...@reader2.news.tin.it...

UPDATE T_veicolo SET T_veicolo.KMPARTENZA = Max(t_rifornimento.kmfinali);
questa è la stringa ok
ma siccome io con questa visualizzo solo i km, come faccio ad essere sicuro 
che poi aggiorna i km del corrispondente veicolo
nella tabella t_veicolo
ho l'impressione che manchi proprio questo no?
dirgli cioè quali sono i campi corrispondenti
le due tabelle sono legate da numero di targa
nella tabella t_veicolo il campo è [targa]
in quella t_rifornimento il campo è [id_v] 

 in quella t_rifornimento il campo č [id_v]
Con l'INNER JOIN
Ciao
-- 
www.gestionedati.com
 

"Davide (Sib)" <sedavi...@Mtiscali.it> ha scritto nel messaggio 
news:46f6a81c$0$10620$4faf...@reader2.news.tin.it...

UPDATE T_Veicolo INNER JOIN T_Rifornimento ON T_Veicolo.Targa = 
T_Rifornimento.ID_V SET T_Veicolo.KMPARTENZA = Max(T_Rifornimento.KMFINALI);
ho provato con questa ma mi duplica i record
un altro piccolo aiutino!!! no??? 

"Davide (Sib)" <sedavi...@Mtiscali.it> ha scritto nel messaggio 
news:46f6a81c$0$10620$4faf...@reader2.news.tin.it...

...possiamo ritornare su questo argomento...??? 

per tornare ad un mio vecchio db dei rifornimenti.....
ho una tabella veicoli ed una delle introduzioni di benzina
in quella dei veicoli ho un campo Kmpartenza in cui ho inserito i km dei
veicoli quando sono partito col db
in quellqa dei rifornimenti oltre ad inserire importo litri etc, inserisco
anche i km all'atto del rifornimento
vorrei fare in modo di aggiornare  il campo kmpartenza nella tabella veicoli
co i km presi dalla tabella rifornimenti, per ogni veicolo, per un periodo
specifico (normalmente un mese solare)
la tabella rifornimenti potrebbe anche non contenere introduzioni relativa a
qualche veicolo che per esempio è rimasto fermo
quindi ho bisogno di aggiornare i km di quelli che hanno camminato.
con questa query selezioni i record che mi servono:
SELECT T_Veicolo.Targa, T_Veicolo.KMPARTENZA,
Max(T_Rifornimento.KMFINALI) AS MaxDiKMFINALI
FROM T_Veicolo INNER JOIN T_Rifornimento ON T_Veicolo.Targa =
T_Rifornimento.ID_V
GROUP BY T_Veicolo.Targa, T_Veicolo.KMPARTENZA
WITH OWNERACCESS OPTION;
ma come faccio ad aggiornare il campo kmpartenza della tabella t_veicoli
solo con i record che mi servono

 ho provato con questa ma mi duplica i record
Non è possibile che ti duplichi il record, una update non inserisce record 
ma modifica quelli esistenti.
Comunque puoi provare un'altra cosa, invece di fare l'inner con 
T_Rifornimento fai una query di raggruppamento di T_Rifornimento dove tiri 
ID_V come raggruppamento e i KM come MAX e l'inner join lo fai con questa 
query che avrà soltanto un record per ogni targa.
Saluti
-- 
www.gestionedati.com
 

"Davide (Sib)" <sedavi...@Mtiscali.it> ha scritto nel messaggio 
news:46f9783e$0$17951$4faf...@reader1.news.tin.it...

niente non funziona nemmeno cosi
UPDATE T_Veicolo INNER JOIN qRifornimento ON T_Veicolo.Targa = 
qRifornimento.ID_V SET T_Veicolo.KMPARTENZA = [maxdikmfinal];
questa è la stringa,
ma se la prova con una query foglio dati prima di eseguirla
vedo solo i km di partenza e non quelli di maxdikmfinali