|
Questa mi piace di più...
SELECT DISTINCT [Nome], [Cognome], [CodFiscale], Foglio1, Foglio2, Foglio3
FROM Tabella3 AS T, [((SELECT "Sì" As Foglio1 FROM Tabella3) UNION (SELECT "No" As Foglio1 FROM Tabella3))]. AS F1, [((SELECT "Sì" As Foglio2 FROM Tabella3) UNION (SELECT "No" As Foglio2 FROM Tabella3))]. AS F2, [((SELECT "Sì" As Foglio3 FROM Tabella3) UNION (SELECT "No" As Foglio3 FROM Tabella3))]. AS F3
WHERE (Foglio1 IN (
(SELECT "Sì" AS Foglio1 FROM Tabella3 WHERE CodFiscale = T.CodFiscale And Foglio = "Foglio1")
) Or Foglio1 IN (
(SELECT "No" As Foglio1 FROM Tabella3 WHERE (SELECT Count(*) As Cont FROM Tabella3 Where CodFiscale = T.CodFiscale) = (SELECT Count(*) As Cont FROM Tabella3 Where CodFiscale = T.CodFiscale And Foglio <> "Foglio1"))
)) And (Foglio2 IN (
(SELECT "Sì" AS Foglio2 FROM Tabella3 WHERE CodFiscale = T.CodFiscale And Foglio = "Foglio2")
) Or Foglio2 IN (
(SELECT "No" As Foglio2 FROM Tabella3 WHERE (SELECT Count(*) As Cont FROM Tabella3 Where CodFiscale = T.CodFiscale) = (SELECT Count(*) As Cont FROM Tabella3 Where CodFiscale = T.CodFiscale And Foglio <> "Foglio2"))
)) And (Foglio3 IN (
(SELECT "Sì" AS Foglio3 FROM Tabella3 WHERE CodFiscale = T.CodFiscale And Foglio = "Foglio3")
) Or Foglio3 IN (
(SELECT "No" As Foglio3 FROM Tabella3 WHERE (SELECT Count(*) As Cont FROM Tabella3 Where CodFiscale = T.CodFiscale) = (SELECT Count(*) As Cont FROM Tabella3 Where CodFiscale = T.CodFiscale And Foglio <> "Foglio3"))
));
Ah...io ho fatto tutto con Access...spero che il tuo DBMS possa supportare tutte queste query annidate...
|