>Della prima devo selezionare le valute che,
>nella seconda tabella, come valore sono diverse da 0, solo che
>nella seconda non ho tutte le valute ma solo 20 (in totale sono
>173). Di queste 20 potrebbero essere valorizzare 1-2-...20 e
>sulla prima tabella devo selezionare tutte le altre.
Se ho capito bene potresti risolvere in questo modo:
USE tempdb;
CREATE TABLE dbo.Valute1(
ValutaID int NOT NULL PRIMARY KEY,
Valuta smallmoney NOT NULL
);
CREATE TABLE dbo.Valute2(
ValutaID int NOT NULL PRIMARY KEY,
Valuta smallmoney NOT NULL
);
INSERT dbo.Valute1 VALUES(1, 10);
INSERT dbo.Valute1 VALUES(2, 20);
INSERT dbo.Valute1 VALUES(3, 30);
INSERT dbo.Valute1 VALUES(4, 40);
INSERT dbo.Valute1 VALUES(5, 50);
INSERT dbo.Valute1 VALUES(6, 60);
INSERT dbo.Valute1 VALUES(7, 70);
INSERT dbo.Valute2 VALUES(1, 0);
INSERT dbo.Valute2 VALUES(2, 10);
INSERT dbo.Valute2 VALUES(3, 0);
INSERT dbo.Valute2 VALUES(4, 20);
WITH CTE_Valute AS
(
SELECT ValutaID
FROM dbo.Valute1
EXCEPT
SELECT ValutaID
FROM dbo.Valute2
WHERE Valuta = 0
)
SELECT V1.*
FROM dbo.Valute1 AS V1
JOIN CTE_Valute AS CTE
ON V1.ValutaID = CTE.ValutaID;
/* Output:
ValutaID Valuta
----------- ---------------------
2 20,00
4 40,00
5 50,00
6 60,00
7 70,00
(5 row(s) affected)
*/
DROP TABLE dbo.Valute1, dbo.Valute2;
>Grazie
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org