>Salve a tutti,
ciao
>volevo sottoporvi un quesito a cui non trovo soluzione:
>Ho due tabelle Access 2007 (Source e Dest) con i campi comuni,
>nella Dest alcuni record non sono completi (hanno un campo bianco),
>nella Source i record, se presenti , sono completi.
>Vorrei ottenere una tabella in cui ho i dati della Dest per i
>record completi e quelli della Source (se esistenti) per i soli
>record che erano incompleti in Dest.
>Sapete indicarmi una strada, magari con una SQL per Access, per
>risolvere il problema?
personalmente userei una LEFT JOIN con una INSERT ed una UPDATE JOIN per risolvere il problema.
Osserva il seguente esempio:
USE tempdb;
GO
CREATE TABLE #tempSource (val1 char(1), val2 int)
CREATE TABLE #tempDest (val1 char(1), val2 int)
INSERT INTO #tempSource ( val1, val2 )
VALUES ( 'A', 1 )
INSERT INTO #tempSource ( val1, val2 )
VALUES ( 'B', 2 )
INSERT INTO #tempSource ( val1, val2 )
VALUES ( 'C', 5 )
INSERT INTO #tempDest ( val1, val2 )
VALUES ( 'A', 1 )
INSERT INTO #tempDest ( val1, val2 )
VALUES ( 'B', NULL )
INSERT INTO #tempDest ( val1, val2 )
VALUES ( 'C', 5 )
INSERT INTO #tempDest ( val1, val2 )
VALUES ( 'D', NULL )
SELECT * FROM #tempSource TS
SELECT * FROM #tempDest TD
-- prima aggiungo i dati mancanti
INSERT INTO #tempDest ( val1, val2 )
SELECT TS.val1, TS.val2
FROM #tempSource TS
LEFT JOIN #tempDest TD ON TS.val1 = TD.val1
WHERE TD.val1 IS NULL
-- poi aggiorno i dati che combaciano
UPDATE #tempDest
SET val2 = TS.val2
FROM #tempSource TS
JOIN #tempDest TD ON TS.val1 = TD.val1
SELECT * FROM #tempDest;
DROP TABLE #tempDest;
DROP TABLE #tempSource;
l'esempio è SQL Server, ma a te dovrebbero bastare le due operazioni di update e insert.
>Grazie in anticipo!
di nulla! 
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi