A contient les produits ( clé unique IDA )
B contient les couleurs possibles pour chacun des produits ( clé unique IDB,
clé multiple IDA )
Je recherche tous les produits A qui n'ont aucune couleur affectée, CAD pas
de ligne dans la table B
1) comment formuler dans l'éditeur de requête ou
2) en SQL direct
Merci de votre support
--
Michel HERRSCHER CONSULTANT
Président WINDASSO - Association des utilisateurs WxxDEV(c)
Tel : +33450870912 Fax:+33450871741
http://www.windasso.org
A contient les produits ( clé unique IDA ) B contient les couleurs possibles pour chacun des produits ( clé unique IDB, clé multiple IDA )
Je recherche tous les produits A qui n'ont aucune couleur affectée, CAD pas de ligne dans la table B
1) comment formuler dans l'éditeur de requête ou
2) en SQL direct
Merci de votre support
En SQL ! ;-)
SELECT IDA FROM A WHERE IDA NOT IN (SELECT IDA FROM B)
Merci bcp
j'avais oublié le NOT IN ....
je vais chercher en Windev ... et je vous tiens au courant
-- Michel HERRSCHER CONSULTANT Président WINDASSO - Association des utilisateurs WxxDEV(c) Tel : +33450870912 Fax:+33450871741 http://www.windasso.org
sebNews
> > > SELECT IDA FROM A > WHERE IDA NOT IN (SELECT IDA FROM B) Merci bcp
j'avais oublié le NOT IN ....
je vais chercher en Windev ... et je vous tiens au courant
Salut,
C'est vrai que ce qui est assez simple à faire en SQL semble plus difficile avec l'éditeur de requête. Il faut que je teste ce type de requête sous l'éditeur pour mes utilisateurs ( WDQE version utilisateur ) Tu peux nous tenir au courant si ce type de requête est possible.
Sinon je reviens sous Paradox ... ( super QBE : mes utilisateurs ont eu un choc en passant sous WdQbe ( surout sur la 5.5 )
J'en profite pour vous demander à tous au passages : vous installez quoi comme produit QBE pour vos clients ? ( dans mon cas le QBE est indispensable )
Sébastien
> >
> SELECT IDA FROM A
> WHERE IDA NOT IN (SELECT IDA FROM B)
Merci bcp
j'avais oublié le NOT IN ....
je vais chercher en Windev ... et je vous tiens au courant
Salut,
C'est vrai que ce qui est assez simple à faire en SQL semble plus difficile
avec l'éditeur de requête.
Il faut que je teste ce type de requête sous l'éditeur pour mes utilisateurs
( WDQE version utilisateur ) Tu peux nous tenir au courant si ce type
de requête est possible.
Sinon je reviens sous Paradox ... ( super QBE : mes utilisateurs ont eu un
choc en
passant sous WdQbe ( surout sur la 5.5 )
J'en profite pour vous demander à tous au passages : vous installez quoi
comme produit
QBE pour vos clients ? ( dans mon cas le QBE est indispensable )
> > > SELECT IDA FROM A > WHERE IDA NOT IN (SELECT IDA FROM B) Merci bcp
j'avais oublié le NOT IN ....
je vais chercher en Windev ... et je vous tiens au courant
Salut,
C'est vrai que ce qui est assez simple à faire en SQL semble plus difficile avec l'éditeur de requête. Il faut que je teste ce type de requête sous l'éditeur pour mes utilisateurs ( WDQE version utilisateur ) Tu peux nous tenir au courant si ce type de requête est possible.
Sinon je reviens sous Paradox ... ( super QBE : mes utilisateurs ont eu un choc en passant sous WdQbe ( surout sur la 5.5 )
J'en profite pour vous demander à tous au passages : vous installez quoi comme produit QBE pour vos clients ? ( dans mon cas le QBE est indispensable )
Sébastien
ManuPavy
sebNews a écrit :
SELECT IDA FROM A WHERE IDA NOT IN (SELECT IDA FROM B)
Merci bcp
j'avais oublié le NOT IN ....
je vais chercher en Windev ... et je vous tiens au courant
Salut,
C'est vrai que ce qui est assez simple à faire en SQL semble plus difficile avec l'éditeur de requête. Il faut que je teste ce type de requête sous l'éditeur pour mes utilisateurs ( WDQE version utilisateur ) Tu peux nous tenir au courant si ce type de requête est possible.
Au passage, si celà n'est pas pris sous WinDev, il y a une correspondance de jointure en SQL pour le NOT IN + sous requete :
SELECT t1.a FROM t1 WHERE t1.id_t1 NOT IN ( SELECT t2.id_t1 FROM t2 ) est équivalent à : SELECT t1.a FROM t1 LEFT OUTER JOIN t2 USING id_t1 WHERE t2.id_t1 IS NULL ou bien (windev ne prend pas le USING je crois) SELECT t1.a FROM t1 LEFT OUTER JOIN t2 ON t1.id_t1 = t2.id_t1 WHERE t2.id_t1 IS NULL
-- Manu
sebNews a écrit :
SELECT IDA FROM A
WHERE IDA NOT IN (SELECT IDA FROM B)
Merci bcp
j'avais oublié le NOT IN ....
je vais chercher en Windev ... et je vous tiens au courant
Salut,
C'est vrai que ce qui est assez simple à faire en SQL semble plus difficile
avec l'éditeur de requête.
Il faut que je teste ce type de requête sous l'éditeur pour mes utilisateurs
( WDQE version utilisateur ) Tu peux nous tenir au courant si ce type
de requête est possible.
Au passage, si celà n'est pas pris sous WinDev, il y a une
correspondance de jointure en SQL pour le NOT IN + sous requete :
SELECT t1.a FROM t1 WHERE t1.id_t1 NOT IN ( SELECT t2.id_t1 FROM t2 )
est équivalent à :
SELECT t1.a FROM t1 LEFT OUTER JOIN t2 USING id_t1 WHERE t2.id_t1 IS NULL
ou bien (windev ne prend pas le USING je crois)
SELECT t1.a FROM t1 LEFT OUTER JOIN t2 ON t1.id_t1 = t2.id_t1 WHERE
t2.id_t1 IS NULL
SELECT IDA FROM A WHERE IDA NOT IN (SELECT IDA FROM B)
Merci bcp
j'avais oublié le NOT IN ....
je vais chercher en Windev ... et je vous tiens au courant
Salut,
C'est vrai que ce qui est assez simple à faire en SQL semble plus difficile avec l'éditeur de requête. Il faut que je teste ce type de requête sous l'éditeur pour mes utilisateurs ( WDQE version utilisateur ) Tu peux nous tenir au courant si ce type de requête est possible.
Au passage, si celà n'est pas pris sous WinDev, il y a une correspondance de jointure en SQL pour le NOT IN + sous requete :
SELECT t1.a FROM t1 WHERE t1.id_t1 NOT IN ( SELECT t2.id_t1 FROM t2 ) est équivalent à : SELECT t1.a FROM t1 LEFT OUTER JOIN t2 USING id_t1 WHERE t2.id_t1 IS NULL ou bien (windev ne prend pas le USING je crois) SELECT t1.a FROM t1 LEFT OUTER JOIN t2 ON t1.id_t1 = t2.id_t1 WHERE t2.id_t1 IS NULL
-- Manu
Michel HERRSCHER
Dans un message sebNews disait :
SELECT IDA FROM A WHERE IDA NOT IN (SELECT IDA FROM B)
Merci bcp
j'avais oublié le NOT IN ....
je vais chercher en Windev ... et je vous tiens au courant
Salut,
C'est vrai que ce qui est assez simple à faire en SQL semble plus difficile avec l'éditeur de requête. Il faut que je teste ce type de requête sous l'éditeur pour mes utilisateurs ( WDQE version utilisateur ) Tu peux nous tenir au courant si ce type de requête est possible.
la retro analyse ne la prend pas. mais on peut l'utiliser comme une requete normale en introduisant le code SQL.
-- Michel HERRSCHER CONSULTANT Président WINDASSO - Association des utilisateurs WxxDEV(c) Tel : +33450870912 Fax:+33450871741 http://www.windasso.org
Dans un message sebNews disait :
SELECT IDA FROM A
WHERE IDA NOT IN (SELECT IDA FROM B)
Merci bcp
j'avais oublié le NOT IN ....
je vais chercher en Windev ... et je vous tiens au courant
Salut,
C'est vrai que ce qui est assez simple à faire en SQL semble plus
difficile avec l'éditeur de requête.
Il faut que je teste ce type de requête sous l'éditeur pour mes
utilisateurs ( WDQE version utilisateur ) Tu peux nous tenir au
courant si ce type
de requête est possible.
la retro analyse ne la prend pas. mais on peut l'utiliser comme une requete
normale en introduisant le code SQL.
--
Michel HERRSCHER CONSULTANT
Président WINDASSO - Association des utilisateurs WxxDEV(c)
Tel : +33450870912 Fax:+33450871741
http://www.windasso.org
SELECT IDA FROM A WHERE IDA NOT IN (SELECT IDA FROM B)
Merci bcp
j'avais oublié le NOT IN ....
je vais chercher en Windev ... et je vous tiens au courant
Salut,
C'est vrai que ce qui est assez simple à faire en SQL semble plus difficile avec l'éditeur de requête. Il faut que je teste ce type de requête sous l'éditeur pour mes utilisateurs ( WDQE version utilisateur ) Tu peux nous tenir au courant si ce type de requête est possible.
la retro analyse ne la prend pas. mais on peut l'utiliser comme une requete normale en introduisant le code SQL.
-- Michel HERRSCHER CONSULTANT Président WINDASSO - Association des utilisateurs WxxDEV(c) Tel : +33450870912 Fax:+33450871741 http://www.windasso.org
sebNews
> la retro analyse ne la prend pas. mais on peut l'utiliser comme une
requete
normale en introduisant le code SQL.
Pour un utilisateur Lamba c'est plus que délicat.
Sébastien
> la retro analyse ne la prend pas. mais on peut l'utiliser comme une
SELECT IDA FROM A WHERE NOT EXISTS (SELECT 1 FROM B where A.IDA = b.IDA)
sinon sous oracle avec jointure
SELECT A.IDA FROM A, B WHERE A.IDA = B.IDA (+) AND B.IDA IS NULL
Je n'ai pas osé proposer ces syntaxes là. Sinon, sont elles standards ?
AB+ Laurent
Manu
"sf.marseille" wrote in message news:42cb943c$0$29941$
Salut,
> SELECT IDA FROM A > WHERE NOT EXISTS (SELECT 1 FROM B where A.IDA = b.IDA) > > sinon sous oracle avec jointure > > SELECT A.IDA > FROM A, B > WHERE A.IDA = B.IDA (+) > AND B.IDA IS NULL
Je n'ai pas osé proposer ces syntaxes là. Sinon, sont elles standards
?
la première oui la deuxième non elle est spécifique Oracle mais celle en "left outer join" je en la connais pas :-( bien qu'elle soit standard.
AB+ Laurent
"sf.marseille" <sf.marseille@mecreant.org> wrote in message
news:42cb943c$0$29941$626a14ce@news.free.fr...
Salut,
> SELECT IDA FROM A
> WHERE NOT EXISTS (SELECT 1 FROM B where A.IDA = b.IDA)
>
> sinon sous oracle avec jointure
>
> SELECT A.IDA
> FROM A, B
> WHERE A.IDA = B.IDA (+)
> AND B.IDA IS NULL
Je n'ai pas osé proposer ces syntaxes là. Sinon, sont elles standards
?
la première oui
la deuxième non elle est spécifique Oracle mais celle en "left outer join"
je en la connais pas :-( bien qu'elle soit standard.
"sf.marseille" wrote in message news:42cb943c$0$29941$
Salut,
> SELECT IDA FROM A > WHERE NOT EXISTS (SELECT 1 FROM B where A.IDA = b.IDA) > > sinon sous oracle avec jointure > > SELECT A.IDA > FROM A, B > WHERE A.IDA = B.IDA (+) > AND B.IDA IS NULL
Je n'ai pas osé proposer ces syntaxes là. Sinon, sont elles standards
?
la première oui la deuxième non elle est spécifique Oracle mais celle en "left outer join" je en la connais pas :-( bien qu'elle soit standard.
AB+ Laurent
ManuPavy
Manu a écrit :
"sf.marseille" wrote in message news:42cb943c$0$29941$
Salut,
SELECT IDA FROM A WHERE NOT EXISTS (SELECT 1 FROM B where A.IDA = b.IDA)
sinon sous oracle avec jointure
SELECT A.IDA FROM A, B WHERE A.IDA = B.IDA (+) AND B.IDA IS NULL
Je n'ai pas osé proposer ces syntaxes là. Sinon, sont elles standards
?
la première oui la deuxième non elle est spécifique Oracle mais celle en "left outer join" je en la connais pas :-( bien qu'elle soit standard.
Oracle v9 a implanté les JOIN (12 ans apres les spec SQL92). Et c'est ce qui est à préférer. apparemment (je ne connais pas trop oracle) : WHERE A.IDA = B.IDA <=> INNER JOIN A.IDA = B.IDA WHERE A.IDA = B.IDA (+) <=> LEFT OUTER JOIN A.IDA = B.IDA <=> WHERE A.IDA = B.IDA OR B.IDA IS NULL WHERE A.IDA (+) = B.IDA <=> RIGHT OUTER JOIN A.IDA = B.IDA <=> WHERE A.IDA = B.IDA OR A.IDA IS NULL
-- Manu
Manu a écrit :
"sf.marseille" <sf.marseille@mecreant.org> wrote in message
news:42cb943c$0$29941$626a14ce@news.free.fr...
Salut,
SELECT IDA FROM A
WHERE NOT EXISTS (SELECT 1 FROM B where A.IDA = b.IDA)
sinon sous oracle avec jointure
SELECT A.IDA
FROM A, B
WHERE A.IDA = B.IDA (+)
AND B.IDA IS NULL
Je n'ai pas osé proposer ces syntaxes là. Sinon, sont elles standards
?
la première oui
la deuxième non elle est spécifique Oracle mais celle en "left outer join"
je en la connais pas :-( bien qu'elle soit standard.
Oracle v9 a implanté les JOIN (12 ans apres les spec SQL92). Et c'est ce
qui est à préférer.
apparemment (je ne connais pas trop oracle) :
WHERE A.IDA = B.IDA <=> INNER JOIN A.IDA = B.IDA
WHERE A.IDA = B.IDA (+) <=> LEFT OUTER JOIN A.IDA = B.IDA
<=> WHERE A.IDA = B.IDA OR B.IDA IS NULL
WHERE A.IDA (+) = B.IDA <=> RIGHT OUTER JOIN A.IDA = B.IDA
<=> WHERE A.IDA = B.IDA OR A.IDA IS NULL
"sf.marseille" wrote in message news:42cb943c$0$29941$
Salut,
SELECT IDA FROM A WHERE NOT EXISTS (SELECT 1 FROM B where A.IDA = b.IDA)
sinon sous oracle avec jointure
SELECT A.IDA FROM A, B WHERE A.IDA = B.IDA (+) AND B.IDA IS NULL
Je n'ai pas osé proposer ces syntaxes là. Sinon, sont elles standards
?
la première oui la deuxième non elle est spécifique Oracle mais celle en "left outer join" je en la connais pas :-( bien qu'elle soit standard.
Oracle v9 a implanté les JOIN (12 ans apres les spec SQL92). Et c'est ce qui est à préférer. apparemment (je ne connais pas trop oracle) : WHERE A.IDA = B.IDA <=> INNER JOIN A.IDA = B.IDA WHERE A.IDA = B.IDA (+) <=> LEFT OUTER JOIN A.IDA = B.IDA <=> WHERE A.IDA = B.IDA OR B.IDA IS NULL WHERE A.IDA (+) = B.IDA <=> RIGHT OUTER JOIN A.IDA = B.IDA <=> WHERE A.IDA = B.IDA OR A.IDA IS NULL