Query strana

martedì 06 maggio 2014 - 14.05
Tag Elenco Tags  Access (.mdb)  |  Office 2010

Gmaster Profilo | Newbie

Salve a tutti,
sto entrando ora nel mondo dei DB e volevo chiedervi un aiuto: io, in access, ho due tabelle simili e devo trasferire alcuni campi di una nell'altra, solo che devono finire in record precisi... Provo a spiegare con un esempio:
ho una tabella coi campi A B e C e un'altra coi campi A B e D; nella prima i record sono completi con tutti e tre i campi riempiti mentre nella seconda è riempita solo la colonna B e la D ok? Io voglio trasferire gli A della prima nella A della seconda, mantenendo però l'associazione con la rispettiva B... Mi sono spiegato??
Help!!

renarig Profilo | Expert

>ho una tabella coi campi A B e C
>e un'altra coi campi A B e D;
>nella prima i record sono completi con tutti e tre i campi riempiti
>mentre nella seconda è riempita solo la colonna B e la D ok?
>Io voglio trasferire gli A della prima nella A della seconda,
>mantenendo però l'associazione con la rispettiva B...

Quindi i campi C e D non ti interessano

Tu devi fare semplicemente ( lo scrivo in mezzo italiano e mezzo SQL )

UPDATE di T2.A al valore di T1.A DOVE T1.B = T2.B

Ma la colonna B contiene valori univoci oppure hai duplicati ???
Dicci anche se si tratta di Numeri o testi o date o cos'altro

.

Gmaster Profilo | Newbie

Ciao! Intanto grazie
Dunque la colonna B contiene sempre dati univoci e di testo, ma c'è da precisare che la colonna B2 non contiene tutti i valori che ci sono in B1 ma solo una parte. Io riesco a scrivere una query che seleziona da tab1 i record che voglio copiare in tab2 ma ora mi manca un modo per tradurre in SQL (o VBA se serve) quell'istruzione che hai giustamente scritto tu!!

renarig Profilo | Expert

dovrebbe essere cosi:

UPDATE T1 INNER JOIN T2 ON T1.B1 = T2.B2 SET T2.A2 = T1.A1;

oppure cosi:
UPDATE T1 INNER JOIN T2 ON T1.B1 = T2.B2 SET T2.A2 = T1.A1 WHERE (((T2.A2)<>[T1].[A1]));

Nel 1° aggiorni in blocco tutti i record dove B corrisponde.

Nel 2° invece valutiamo se per caso la A non sia gia corrispondente e in quel caso non viene aggiornata.
Il vantaggio è che se si tratta di molti record allora conviene aggiornare solamente quelli necessari


.

Gmaster Profilo | Newbie

Cioè ma io ti amo, era proprio quello che mi serviva!!! Grazie!!!!!
A questo punto ne approfitto per chiedere anche un'altra cosa....
Si puo' fare in access un inner join tra due tabelle di due file diversi??

renarig Profilo | Expert

>Si puo' fare in access un inner join tra due tabelle di due file diversi??
Cosa significa File diversi. ???

Se in uno stesso file di Access hai delle "Tabelle Collegate" che possono puntare a:
-- tabelle su altri file di Access
-- file di testo ( .txt )
-- file di excel ( .xls )
-- tabelle di altri Database ( SQLServer MySql ecc.)
allora puoi fare tutti i JOIN che vuoi


Ci sono anche altre possibilita di fare JOIN non avendo le "Tabelle Collegate"
ma spiegaci bene la domanda nel suo contesto

.

Gmaster Profilo | Newbie

Ok grazie, in effetti con le tabelle collegate funziona!! (ammetto l'ignoranza ma non lo sapevo...)
Comunque il caso specifico è proprio quello lì scritto più su della query di update che fa uso di tue tab (t1 e t2) che però nel mio caso si trovano in due DB diversi!!
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 !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5