Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
> Le mieux est sans doute de tester sur ta propre config (?)
Ma préférence serait (faire un LEFT JOIN et garder les lignes sans
correspondance):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
LEFT JOIN PREV331R R1 ON R1.b7prev222q=Q2.b7prev222q
WHERE R1.b7prev222q IS NULL
--
Patrice
"okpwal" a écrit dans le message de
news:Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
> Le mieux est sans doute de tester sur ta propre config (?)
Ma préférence serait (faire un LEFT JOIN et garder les lignes sans
correspondance):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
LEFT JOIN PREV331R R1 ON R1.b7prev222q=Q2.b7prev222q
WHERE R1.b7prev222q IS NULL
--
Patrice
"okpwal" <okpwal@wanadoo.fr> a écrit dans le message de
news:mn.33f37d63c9699172.43908@wanadoo.fr...
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
> Le mieux est sans doute de tester sur ta propre config (?)
Ma préférence serait (faire un LEFT JOIN et garder les lignes sans
correspondance):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
LEFT JOIN PREV331R R1 ON R1.b7prev222q=Q2.b7prev222q
WHERE R1.b7prev222q IS NULL
--
Patrice
"okpwal" a écrit dans le message de
news:Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
bonjour,
si je comprends bien vous voulez récuperer les enregistrements de votre
table A qui ne sont pas present dans votre table B ?
dans tous les cas execmpt n'est valable que pour SQL 2005 il n'existe pas en
SQL 2000
Personellement j'opterais pour cette solution qui doit marcher sous 2000 &
2005
le left outer join aura le merite de renvoyer toute les lignes de la table A
Moins le filtre where a savoir celle qui sont null sur la table B
dans le from de la table R1 autant ne renvoyer que la cle primaire etant
donné que l'etoile va renvoyer bien trop de donnée inutiles !
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q as Q2 left outer join
(
SELECT b7prev222q
FROM PREV331R
) R1
on R1.b7prev222q=Q2.b7prev222q
where r1.b7prev222q is null
Si un expert peut confirmer !
Merci
"okpwal" a écrit dans le message de news:Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
bonjour,
si je comprends bien vous voulez récuperer les enregistrements de votre
table A qui ne sont pas present dans votre table B ?
dans tous les cas execmpt n'est valable que pour SQL 2005 il n'existe pas en
SQL 2000
Personellement j'opterais pour cette solution qui doit marcher sous 2000 &
2005
le left outer join aura le merite de renvoyer toute les lignes de la table A
Moins le filtre where a savoir celle qui sont null sur la table B
dans le from de la table R1 autant ne renvoyer que la cle primaire etant
donné que l'etoile va renvoyer bien trop de donnée inutiles !
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q as Q2 left outer join
(
SELECT b7prev222q
FROM PREV331R
) R1
on R1.b7prev222q=Q2.b7prev222q
where r1.b7prev222q is null
Si un expert peut confirmer !
Merci
"okpwal" <okpwal@wanadoo.fr> a écrit dans le message de news:
mn.33f37d63c9699172.43908@wanadoo.fr...
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
bonjour,
si je comprends bien vous voulez récuperer les enregistrements de votre
table A qui ne sont pas present dans votre table B ?
dans tous les cas execmpt n'est valable que pour SQL 2005 il n'existe pas en
SQL 2000
Personellement j'opterais pour cette solution qui doit marcher sous 2000 &
2005
le left outer join aura le merite de renvoyer toute les lignes de la table A
Moins le filtre where a savoir celle qui sont null sur la table B
dans le from de la table R1 autant ne renvoyer que la cle primaire etant
donné que l'etoile va renvoyer bien trop de donnée inutiles !
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q as Q2 left outer join
(
SELECT b7prev222q
FROM PREV331R
) R1
on R1.b7prev222q=Q2.b7prev222q
where r1.b7prev222q is null
Si un expert peut confirmer !
Merci
"okpwal" a écrit dans le message de news:Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
> NOT EXISTS est généralement plus rapide.
A +
Ch. a écrit:bonjour,
si je comprends bien vous voulez récuperer les enregistrements de votre
table A qui ne sont pas present dans votre table B ?
dans tous les cas execmpt n'est valable que pour SQL 2005 il n'existe pas
en SQL 2000
Personellement j'opterais pour cette solution qui doit marcher sous 2000 &
2005
le left outer join aura le merite de renvoyer toute les lignes de la table
A Moins le filtre where a savoir celle qui sont null sur la table B
dans le from de la table R1 autant ne renvoyer que la cle primaire etant
donné que l'etoile va renvoyer bien trop de donnée inutiles !
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q as Q2 left outer join
(
SELECT b7prev222q
FROM PREV331R
) R1
on R1.b7prev222q=Q2.b7prev222q
where r1.b7prev222q is null
Si un expert peut confirmer !
Merci
"okpwal" a écrit dans le message de news:Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
-- okpwal
la perdrix !
> NOT EXISTS est généralement plus rapide.
A +
Ch. a écrit:
bonjour,
si je comprends bien vous voulez récuperer les enregistrements de votre
table A qui ne sont pas present dans votre table B ?
dans tous les cas execmpt n'est valable que pour SQL 2005 il n'existe pas
en SQL 2000
Personellement j'opterais pour cette solution qui doit marcher sous 2000 &
2005
le left outer join aura le merite de renvoyer toute les lignes de la table
A Moins le filtre where a savoir celle qui sont null sur la table B
dans le from de la table R1 autant ne renvoyer que la cle primaire etant
donné que l'etoile va renvoyer bien trop de donnée inutiles !
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q as Q2 left outer join
(
SELECT b7prev222q
FROM PREV331R
) R1
on R1.b7prev222q=Q2.b7prev222q
where r1.b7prev222q is null
Si un expert peut confirmer !
Merci
"okpwal" <okpwal@wanadoo.fr> a écrit dans le message de news:
mn.33f37d63c9699172.43908@wanadoo.fr...
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
-- okpwal
la perdrix !
> NOT EXISTS est généralement plus rapide.
A +
Ch. a écrit:bonjour,
si je comprends bien vous voulez récuperer les enregistrements de votre
table A qui ne sont pas present dans votre table B ?
dans tous les cas execmpt n'est valable que pour SQL 2005 il n'existe pas
en SQL 2000
Personellement j'opterais pour cette solution qui doit marcher sous 2000 &
2005
le left outer join aura le merite de renvoyer toute les lignes de la table
A Moins le filtre where a savoir celle qui sont null sur la table B
dans le from de la table R1 autant ne renvoyer que la cle primaire etant
donné que l'etoile va renvoyer bien trop de donnée inutiles !
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q as Q2 left outer join
(
SELECT b7prev222q
FROM PREV331R
) R1
on R1.b7prev222q=Q2.b7prev222q
where r1.b7prev222q is null
Si un expert peut confirmer !
Merci
"okpwal" a écrit dans le message de news:Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
-- okpwal
la perdrix !
NOT EXISTS est généralement plus rapide.
A +
Ch. a écrit:bonjour,
si je comprends bien vous voulez récuperer les enregistrements de votre
table A qui ne sont pas present dans votre table B ?
dans tous les cas execmpt n'est valable que pour SQL 2005 il n'existe pas
en SQL 2000
Personellement j'opterais pour cette solution qui doit marcher sous 2000
& 2005
le left outer join aura le merite de renvoyer toute les lignes de la
table A Moins le filtre where a savoir celle qui sont null sur la table B
dans le from de la table R1 autant ne renvoyer que la cle primaire etant
donné que l'etoile va renvoyer bien trop de donnée inutiles !
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q as Q2 left outer join
(
SELECT b7prev222q
FROM PREV331R
) R1
on R1.b7prev222q=Q2.b7prev222q
where r1.b7prev222q is null
Si un expert peut confirmer !
Merci
"okpwal" a écrit dans le message de news:Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
NOT EXISTS est généralement plus rapide.
A +
Ch. a écrit:
bonjour,
si je comprends bien vous voulez récuperer les enregistrements de votre
table A qui ne sont pas present dans votre table B ?
dans tous les cas execmpt n'est valable que pour SQL 2005 il n'existe pas
en SQL 2000
Personellement j'opterais pour cette solution qui doit marcher sous 2000
& 2005
le left outer join aura le merite de renvoyer toute les lignes de la
table A Moins le filtre where a savoir celle qui sont null sur la table B
dans le from de la table R1 autant ne renvoyer que la cle primaire etant
donné que l'etoile va renvoyer bien trop de donnée inutiles !
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q as Q2 left outer join
(
SELECT b7prev222q
FROM PREV331R
) R1
on R1.b7prev222q=Q2.b7prev222q
where r1.b7prev222q is null
Si un expert peut confirmer !
Merci
"okpwal" <okpwal@wanadoo.fr> a écrit dans le message de news:
mn.33f37d63c9699172.43908@wanadoo.fr...
Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
NOT EXISTS est généralement plus rapide.
A +
Ch. a écrit:bonjour,
si je comprends bien vous voulez récuperer les enregistrements de votre
table A qui ne sont pas present dans votre table B ?
dans tous les cas execmpt n'est valable que pour SQL 2005 il n'existe pas
en SQL 2000
Personellement j'opterais pour cette solution qui doit marcher sous 2000
& 2005
le left outer join aura le merite de renvoyer toute les lignes de la
table A Moins le filtre where a savoir celle qui sont null sur la table B
dans le from de la table R1 autant ne renvoyer que la cle primaire etant
donné que l'etoile va renvoyer bien trop de donnée inutiles !
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q as Q2 left outer join
(
SELECT b7prev222q
FROM PREV331R
) R1
on R1.b7prev222q=Q2.b7prev222q
where r1.b7prev222q is null
Si un expert peut confirmer !
Merci
"okpwal" a écrit dans le message de news:Bonjour,
Soit la requête (a):
SELECT Q2.b7prev222q,Q2.libelle,Q2.code,Q2.abrev
FROM PREV222Q Q2
WHERE NOT EXISTS (
SELECT *
FROM PREV331R R1
WHERE R1.b7prev222q=Q2.b7prev222q )
vs la requête (b):
SELECT Q2.b7prev222q, Q2.libelle, Q2.code, Q2.abrev
FROM PREV222Q Q2
WHERE Q2.b7prev222q IN (
SELECT b7prev222q FROM PREV222Q
EXCEPT
SELECT b7prev222q FROM PREV331R )
Si un spécialiste du SQL peut m'orienter vers la bonne rédaction ; je
soupconne que l'une d'elle consomme plus de temps en exécution.
Merci.
G.
--
okpwal
la perdrix !
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************