Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
TSQL 2000/2005 Query Conundrum
Message
 
 
À
10/12/2007 10:43:28
Information générale
Forum:
Microsoft SQL Server
Catégorie:
Syntaxe SQL
Versions des environnements
SQL Server:
SQL Server 2005
Divers
Thread ID:
01274411
Message ID:
01274445
Vues:
11
This message has been marked as the solution to the initial question of the thread.
Why repeat the same conditions twice? Try
SELECT i.* from table1 i
	  WHERE (i.field1 = 'FA' and field2 IN('AAA','BBB') AND i.field3 = 0)
       		AND NOT EXISTS (SELECT * from table3 a WHERE a.table2id = i.table2id AND a.field4 = i.field4))
  			AND (EXISTS (SELECT * from table2 s WHERE s.table2id = i.table2id AND s.fielda <> 'X' AND s.fieldb <> 'I')
    				OR NOT EXISTS (SELECT * from table2 s WHERE s.table2id = i.table2id))
>I think this works:
>
>SELECT i.* from table1 i
>  WHERE (((i.field1 = 'FA' and (field2 = 'AAA' or field2 = 'BBB') AND i.field3 = 0)
>     AND EXISTS (select * from table2 s where s.table2id = i.table2id AND s.fielda <> 'X'
>                    AND s.fieldb <> 'I')
>     AND NOT EXISTS (SELECT * from table3 a where a.table2id = i.table2id
>                      AND a.field4 = i.field4))
>    OR
>      ((i.field1 = 'FA' and (field2 = 'AAA' or field2 = 'BBB') AND i.field3 = 0)
>            AND NOT EXISTS (select * from table2 s where s.table2id = i.table2id)
>            AND NOT EXISTS (SELECT * from table3 a where a.table2id = i.table2id
>                             AND a.field4 = i.field4)))
>
--sb--
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform