>Partendo dalla tabella 1 come esistente, e scorrendo la tabella
>2, vorrei inserire nella tabella 1 le righe di tabella 2 che
>hanno un valore di Anagrafica ID non presente in tabella 1.
Ciao Giampiero,
Ti allego un esempio per SQL Server per essere chiari, anche se il comando di INSERT dovrebbe essere compatibile con Access:
USE tempdb;
CREATE TABLE dbo.Tab1(
MacchinaID int NOT NULL IDENTITY PRIMARY KEY,
AnagraficaID int NOT NULL,
Tipo varchar(10) NOT NULL,
Marca varchar(10) NOT NULL,
Gestore varchar(10) NOT NULL,
Attività bit NOT NULL
);
CREATE TABLE dbo.Tab2(
MacchinaID int NOT NULL IDENTITY PRIMARY KEY,
AnagraficaID int NOT NULL,
Tipo varchar(10) NOT NULL,
Marca varchar(10) NOT NULL,
Gestore varchar(10) NOT NULL,
Attività bit NOT NULL
);
INSERT dbo.Tab1
VALUES(10, 'Tipo1', 'Marca1', 'Gestore1', 1)
, (24, 'Tipo2', 'Marca2', 'Gestore3', 0)
, (35, 'Tipo3', 'Marca3', 'Gestore3', 1);
INSERT dbo.Tab2
VALUES(11, 'Tipo4', 'Marca4', 'Gestore4', 1)
, (24, 'Tipo2', 'Marca2', 'Gestore3', 0)
, (40, 'Tipo5', 'Marca5', 'Gestore5', 1);
INSERT dbo.Tab1(AnagraficaID, Tipo, Marca, Gestore, Attività)
SELECT AnagraficaID, Tipo, Marca, Gestore, Attività
FROM dbo.Tab2 AS T2
WHERE NOT EXISTS(
SELECT *
FROM dbo.Tab1
WHERE T2.AnagraficaID = AnagraficaID
);
SELECT *
FROM dbo.Tab1
ORDER BY AnagraficaID;
/* Output:
MacchinaID AnagraficaID Tipo Marca Gestore Attività
----------- ------------ ---------- ---------- ---------- --------
1 10 Tipo1 Marca1 Gestore1 1
4 11 Tipo4 Marca4 Gestore4 1
2 24 Tipo2 Marca2 Gestore3 0
3 35 Tipo3 Marca3 Gestore3 1
5 40 Tipo5 Marca5 Gestore5 1
(5 row(s) affected)
*/
DROP TABLE dbo.Tab1, dbo.Tab2;
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org