Query Access tra più tabelle

mercoledì 05 novembre 2008 - 19.32

Franto Profilo | Junior Member

Ciao a tutti, ho il seguente problema:

Ho 4 tabelle (A, B, C, D)

A e B sono relazionate uno a molti
C contiene i dati filtrati di A

Io dovrei popolare D con i dati di B esistenti in C

Spero di essere stato chiaro.

Grazie


--------------------------------------------------------------
Il destino è solo una giustificazione a ciò che è accaduto, che accade e che accadrà. Apriamo gli occhi e riprendiamoci la nostra vita.

lbenaglia Profilo | Guru

>Ho 4 tabelle (A, B, C, D)
>
>A e B sono relazionate uno a molti
>C contiene i dati filtrati di A
>
>Io dovrei popolare D con i dati di B esistenti in C
>
>Spero di essere stato chiaro.

Ciao Antonio,

Si può fare, basta una JOIN e una INSERT, spero di essere stato chiaro
Se desideri una risposta "un pochino" più accurata, zippa l'mdb ed allegalo ad un nuovo post, spiegando quale risultato vuoi ottenere utilizzando il nome vero delle tabelle.

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Franto Profilo | Junior Member

Ecco il file .mdb

L'originale purtroppo non ce l'ho qui, ma ho ricreato il caso.

Praticamente nella tabella OR_DETTA ci sono una serie di record con flag aggiornato uguale a 1 o 0.
La tabella OR_DETTA_AGGIO è frutto dei filtri su OR_DETTA e contiene solo i record aggiornati.

OR_DETTP contiente i record appartenenti alle righe di OR_DETTA.
OR_DETTP_AGGIO dovrebbe contenere i record di OR_DETTP relativi alle righe di OR_DETTA_AGGIO.

Grazie x l'aiuto..



--------------------------------------------------------------
Il destino è solo una giustificazione a ciò che è accaduto, che accade e che accadrà. Apriamo gli occhi e riprendiamoci la nostra vita.

lbenaglia Profilo | Guru

>OR_DETTP_AGGIO dovrebbe contenere i record di OR_DETTP relativi
>alle righe di OR_DETTA_AGGIO.

Se ho interpretato bene il problema, questa query dovrebbe fornirti il risultato desiderato:

INSERT INTO OR_DETTP_AGGIO SELECT D.* FROM OR_DETTA_AGGIO AS DA INNER JOIN OR_DETTP AS D ON DA.AZIENDA = D.AZIENDA AND DA.DATA = D.DATA AND DA.NUMERO = D.NUMERO AND DA.RIGA = D.RIGA;

>Grazie x l'aiuto..
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

Franto Profilo | Junior Member

Fantastico!!!
Grazie di nuovo
--------------------------------------------------------------
Il destino è solo una giustificazione a ciò che è accaduto, che accade e che accadrà. Apriamo gli occhi e riprendiamoci la nostra vita.
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5