Aux spécialiste SQL
(Je suis en WD11 dernière version sur HF classic)
J'ai trois tables:
La table DOCUMLG contient IDDOCUMLG
La table T_DONNC contient IDDOCUMLG,IDNUMSERIE
La table NUMSERIE contient IDNUMSERIE
Pour chaque DOCUMLG je peut avoir ou pas un lien dans la table T_DONNC (par
IDDOCUMLG).
Si ce lien existe, j'ai nécessairement un lien dans NUMSERIE (par
IDNUMSERIE)
Comment récupérer toutes les lignes de DOCUMLG avec leur N° de série (ou pas
!!!) en SQL
J'ai essayé les requètes suivantes, sans succès
select * from DOCUMLG left join (T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG),
NUMSERIE
where NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
ne me renvoi pas ce que je cherche (normal, dans le cas ou T_DONNC ne
contient pas de lien, le "where NUMSERIE..." va retourner FAUX)
select * from DOCUMLG left join T_DONNC on (T_DONNC.IDDOCUMLG =
DOCUMLG.IDDOCUMLG),
NUMSERIE left join T_DONNC on (NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE)
Sur cete dernière j'ai une erreur à l'exécution "IDDOCUMLG non amorcé..."
En fait je veux pouvoir recupérer les enregistrements de DOCUMLG qu'ils
aient ou non un n° de série
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Emprin, Frederic
Bonjour,
SEELCT * from DOCUMLG LEFT JOIN T_DONNC ON T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG LEFT JOIN NUMSERIE ON NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
cela va renvoyer toutes les ligne de documlg avec ou pas leur n° de serie
c'est avoir mis NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE dans le where qui casse le left join et fait une jointure interne
avec le where au niveau du on ca change tout
Bon dev @+
"I.G.LOG" a écrit dans le message de news: 45c2020c$0$5104$
Bonjour,
Aux spécialiste SQL (Je suis en WD11 dernière version sur HF classic)
J'ai trois tables: La table DOCUMLG contient IDDOCUMLG La table T_DONNC contient IDDOCUMLG,IDNUMSERIE La table NUMSERIE contient IDNUMSERIE
Pour chaque DOCUMLG je peut avoir ou pas un lien dans la table T_DONNC (par IDDOCUMLG). Si ce lien existe, j'ai nécessairement un lien dans NUMSERIE (par IDNUMSERIE)
Comment récupérer toutes les lignes de DOCUMLG avec leur N° de série (ou pas !!!) en SQL
J'ai essayé les requètes suivantes, sans succès
select * from DOCUMLG left join (T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG), NUMSERIE where NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
ne me renvoi pas ce que je cherche (normal, dans le cas ou T_DONNC ne contient pas de lien, le "where NUMSERIE..." va retourner FAUX)
select * from DOCUMLG left join T_DONNC on (T_DONNC.IDDOCUMLG > DOCUMLG.IDDOCUMLG), NUMSERIE left join T_DONNC on (NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE)
Sur cete dernière j'ai une erreur à l'exécution "IDDOCUMLG non amorcé..."
En fait je veux pouvoir recupérer les enregistrements de DOCUMLG qu'ils aient ou non un n° de série
Mercc à tous
Bonjour,
SEELCT * from DOCUMLG
LEFT JOIN T_DONNC
ON T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG
LEFT JOIN NUMSERIE
ON NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
cela va renvoyer toutes les ligne de documlg
avec ou pas leur n° de serie
c'est avoir mis NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
dans le where qui casse le left join et fait une jointure interne
avec le where au niveau du on ca change tout
Bon dev
@+
"I.G.LOG" <iglog@free.fr> a écrit dans le message de news:
45c2020c$0$5104$ba4acef3@news.orange.fr...
Bonjour,
Aux spécialiste SQL
(Je suis en WD11 dernière version sur HF classic)
J'ai trois tables:
La table DOCUMLG contient IDDOCUMLG
La table T_DONNC contient IDDOCUMLG,IDNUMSERIE
La table NUMSERIE contient IDNUMSERIE
Pour chaque DOCUMLG je peut avoir ou pas un lien dans la table T_DONNC
(par
IDDOCUMLG).
Si ce lien existe, j'ai nécessairement un lien dans NUMSERIE (par
IDNUMSERIE)
Comment récupérer toutes les lignes de DOCUMLG avec leur N° de série (ou
pas
!!!) en SQL
J'ai essayé les requètes suivantes, sans succès
select * from DOCUMLG left join (T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG),
NUMSERIE
where NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
ne me renvoi pas ce que je cherche (normal, dans le cas ou T_DONNC ne
contient pas de lien, le "where NUMSERIE..." va retourner FAUX)
select * from DOCUMLG left join T_DONNC on (T_DONNC.IDDOCUMLG > DOCUMLG.IDDOCUMLG),
NUMSERIE left join T_DONNC on (NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE)
Sur cete dernière j'ai une erreur à l'exécution "IDDOCUMLG non amorcé..."
En fait je veux pouvoir recupérer les enregistrements de DOCUMLG qu'ils
aient ou non un n° de série
SEELCT * from DOCUMLG LEFT JOIN T_DONNC ON T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG LEFT JOIN NUMSERIE ON NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
cela va renvoyer toutes les ligne de documlg avec ou pas leur n° de serie
c'est avoir mis NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE dans le where qui casse le left join et fait une jointure interne
avec le where au niveau du on ca change tout
Bon dev @+
"I.G.LOG" a écrit dans le message de news: 45c2020c$0$5104$
Bonjour,
Aux spécialiste SQL (Je suis en WD11 dernière version sur HF classic)
J'ai trois tables: La table DOCUMLG contient IDDOCUMLG La table T_DONNC contient IDDOCUMLG,IDNUMSERIE La table NUMSERIE contient IDNUMSERIE
Pour chaque DOCUMLG je peut avoir ou pas un lien dans la table T_DONNC (par IDDOCUMLG). Si ce lien existe, j'ai nécessairement un lien dans NUMSERIE (par IDNUMSERIE)
Comment récupérer toutes les lignes de DOCUMLG avec leur N° de série (ou pas !!!) en SQL
J'ai essayé les requètes suivantes, sans succès
select * from DOCUMLG left join (T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG), NUMSERIE where NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
ne me renvoi pas ce que je cherche (normal, dans le cas ou T_DONNC ne contient pas de lien, le "where NUMSERIE..." va retourner FAUX)
select * from DOCUMLG left join T_DONNC on (T_DONNC.IDDOCUMLG > DOCUMLG.IDDOCUMLG), NUMSERIE left join T_DONNC on (NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE)
Sur cete dernière j'ai une erreur à l'exécution "IDDOCUMLG non amorcé..."
En fait je veux pouvoir recupérer les enregistrements de DOCUMLG qu'ils aient ou non un n° de série
Mercc à tous
I.G.LOG
Bonjour Merci de la réponse, je fais l'essai
"Emprin, Frederic" a écrit dans le message de news:45c20807$0$26744$
Bonjour,
SEELCT * from DOCUMLG LEFT JOIN T_DONNC ON T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG LEFT JOIN NUMSERIE ON NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
cela va renvoyer toutes les ligne de documlg avec ou pas leur n° de serie
c'est avoir mis NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE dans le where qui casse le left join et fait une jointure interne
avec le where au niveau du on ca change tout
Bon dev @+
"I.G.LOG" a écrit dans le message de news: 45c2020c$0$5104$ > Bonjour, > > Aux spécialiste SQL > (Je suis en WD11 dernière version sur HF classic) > > > J'ai trois tables: > La table DOCUMLG contient IDDOCUMLG > La table T_DONNC contient IDDOCUMLG,IDNUMSERIE > La table NUMSERIE contient IDNUMSERIE > > Pour chaque DOCUMLG je peut avoir ou pas un lien dans la table T_DONNC > (par > IDDOCUMLG). > Si ce lien existe, j'ai nécessairement un lien dans NUMSERIE (par > IDNUMSERIE) > > DOCUMLG (1,n) <-----> T_DONNC (0,1) <------> NUMSERIE (1,1) > > > Comment récupérer toutes les lignes de DOCUMLG avec leur N° de série (ou > pas > !!!) en SQL > > J'ai essayé les requètes suivantes, sans succès > > select * from DOCUMLG left join (T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG), > NUMSERIE > where NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE > > ne me renvoi pas ce que je cherche (normal, dans le cas ou T_DONNC ne > contient pas de lien, le "where NUMSERIE..." va retourner FAUX) > > > select * from DOCUMLG left join T_DONNC on (T_DONNC.IDDOCUMLG > > DOCUMLG.IDDOCUMLG), > NUMSERIE left join T_DONNC on (NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE) > > Sur cete dernière j'ai une erreur à l'exécution "IDDOCUMLG non
amorcé..."
> > > En fait je veux pouvoir recupérer les enregistrements de DOCUMLG qu'ils > aient ou non un n° de série > > Mercc à tous > >
Bonjour
Merci de la réponse, je fais l'essai
"Emprin, Frederic" <femprin@SQLManagerX.com> a écrit dans le message de
news:45c20807$0$26744$426a74cc@news.free.fr...
Bonjour,
SEELCT * from DOCUMLG
LEFT JOIN T_DONNC
ON T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG
LEFT JOIN NUMSERIE
ON NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
cela va renvoyer toutes les ligne de documlg
avec ou pas leur n° de serie
c'est avoir mis NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
dans le where qui casse le left join et fait une jointure interne
avec le where au niveau du on ca change tout
Bon dev
@+
"I.G.LOG" <iglog@free.fr> a écrit dans le message de news:
45c2020c$0$5104$ba4acef3@news.orange.fr...
> Bonjour,
>
> Aux spécialiste SQL
> (Je suis en WD11 dernière version sur HF classic)
>
>
> J'ai trois tables:
> La table DOCUMLG contient IDDOCUMLG
> La table T_DONNC contient IDDOCUMLG,IDNUMSERIE
> La table NUMSERIE contient IDNUMSERIE
>
> Pour chaque DOCUMLG je peut avoir ou pas un lien dans la table T_DONNC
> (par
> IDDOCUMLG).
> Si ce lien existe, j'ai nécessairement un lien dans NUMSERIE (par
> IDNUMSERIE)
>
> DOCUMLG (1,n) <-----> T_DONNC (0,1) <------> NUMSERIE (1,1)
>
>
> Comment récupérer toutes les lignes de DOCUMLG avec leur N° de série (ou
> pas
> !!!) en SQL
>
> J'ai essayé les requètes suivantes, sans succès
>
> select * from DOCUMLG left join (T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG),
> NUMSERIE
> where NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
>
> ne me renvoi pas ce que je cherche (normal, dans le cas ou T_DONNC ne
> contient pas de lien, le "where NUMSERIE..." va retourner FAUX)
>
>
> select * from DOCUMLG left join T_DONNC on (T_DONNC.IDDOCUMLG > > DOCUMLG.IDDOCUMLG),
> NUMSERIE left join T_DONNC on (NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE)
>
> Sur cete dernière j'ai une erreur à l'exécution "IDDOCUMLG non
amorcé..."
>
>
> En fait je veux pouvoir recupérer les enregistrements de DOCUMLG qu'ils
> aient ou non un n° de série
>
> Mercc à tous
>
>
"Emprin, Frederic" a écrit dans le message de news:45c20807$0$26744$
Bonjour,
SEELCT * from DOCUMLG LEFT JOIN T_DONNC ON T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG LEFT JOIN NUMSERIE ON NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
cela va renvoyer toutes les ligne de documlg avec ou pas leur n° de serie
c'est avoir mis NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE dans le where qui casse le left join et fait une jointure interne
avec le where au niveau du on ca change tout
Bon dev @+
"I.G.LOG" a écrit dans le message de news: 45c2020c$0$5104$ > Bonjour, > > Aux spécialiste SQL > (Je suis en WD11 dernière version sur HF classic) > > > J'ai trois tables: > La table DOCUMLG contient IDDOCUMLG > La table T_DONNC contient IDDOCUMLG,IDNUMSERIE > La table NUMSERIE contient IDNUMSERIE > > Pour chaque DOCUMLG je peut avoir ou pas un lien dans la table T_DONNC > (par > IDDOCUMLG). > Si ce lien existe, j'ai nécessairement un lien dans NUMSERIE (par > IDNUMSERIE) > > DOCUMLG (1,n) <-----> T_DONNC (0,1) <------> NUMSERIE (1,1) > > > Comment récupérer toutes les lignes de DOCUMLG avec leur N° de série (ou > pas > !!!) en SQL > > J'ai essayé les requètes suivantes, sans succès > > select * from DOCUMLG left join (T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG), > NUMSERIE > where NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE > > ne me renvoi pas ce que je cherche (normal, dans le cas ou T_DONNC ne > contient pas de lien, le "where NUMSERIE..." va retourner FAUX) > > > select * from DOCUMLG left join T_DONNC on (T_DONNC.IDDOCUMLG > > DOCUMLG.IDDOCUMLG), > NUMSERIE left join T_DONNC on (NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE) > > Sur cete dernière j'ai une erreur à l'exécution "IDDOCUMLG non
amorcé..."
> > > En fait je veux pouvoir recupérer les enregistrements de DOCUMLG qu'ils > aient ou non un n° de série > > Mercc à tous > >
I.G.LOG
Bon après différents essais, impossible de retrouver les bonnes valeurs !!! Voici la requete sur laquelle je fais des essais, qui devrait me retourner tous les documents DOCUM de type 20 comportant une ligne dans DOCUMLG avec NUMGRP = 0 et ceci qu'il y ait un n° de série ou pas !!!
select REFDOC,NUMSERIE.NUMSERIE from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40) left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR) where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
Cette requète me retourne seulement une partie des enregistrements, et pas tous ceux que je devrait avoir !!!
Merci à vous tous (et notamment Frederic qui s'est interessé au problème)
"Emprin, Frederic" a écrit dans le message de news:45c20807$0$26744$
Bonjour,
SEELCT * from DOCUMLG LEFT JOIN T_DONNC ON T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG LEFT JOIN NUMSERIE ON NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
cela va renvoyer toutes les ligne de documlg avec ou pas leur n° de serie
c'est avoir mis NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE dans le where qui casse le left join et fait une jointure interne
avec le where au niveau du on ca change tout
Bon dev @+
Bon après différents essais, impossible de retrouver les bonnes valeurs !!!
Voici la requete sur laquelle je fais des essais, qui devrait me retourner
tous les documents DOCUM de type 20 comportant une ligne dans DOCUMLG avec
NUMGRP = 0 et ceci qu'il y ait un n° de série ou pas !!!
select REFDOC,NUMSERIE.NUMSERIE
from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUM.IDTYPE = 20
and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM
and DOCUMLG.NUMGRP = 0
Cette requète me retourne seulement une partie des enregistrements, et pas
tous ceux que je devrait avoir !!!
Bon après différents essais, impossible de retrouver les bonnes valeurs !!! Voici la requete sur laquelle je fais des essais, qui devrait me retourner tous les documents DOCUM de type 20 comportant une ligne dans DOCUMLG avec NUMGRP = 0 et ceci qu'il y ait un n° de série ou pas !!!
select REFDOC,NUMSERIE.NUMSERIE from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40) left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR) where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
Cette requète me retourne seulement une partie des enregistrements, et pas tous ceux que je devrait avoir !!!
Merci à vous tous (et notamment Frederic qui s'est interessé au problème)
"Emprin, Frederic" a écrit dans le message de news:45c20807$0$26744$
Bonjour,
SEELCT * from DOCUMLG LEFT JOIN T_DONNC ON T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG LEFT JOIN NUMSERIE ON NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
cela va renvoyer toutes les ligne de documlg avec ou pas leur n° de serie
c'est avoir mis NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE dans le where qui casse le left join et fait une jointure interne
avec le where au niveau du on ca change tout
Bon dev @+
I.G.LOG
A titre d'exemple, j'execute les deux requetes suivantes:
select REFDOC from DOCUM,DOCUMLG where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
me donne 8986 enregistrements
alors que
select REFDOC,NUMSERIE.NUMSERIE from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40) left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR) where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
m'en renvoi seulement 907 ??? la combinaison de left join m'a donc supprimé 8000 tuples alors que je cherche à ce que la ligne soit sélectionnée qu'elle ait un lien avec S/N ou pas !!!
Encore merci
A titre d'exemple, j'execute les deux requetes suivantes:
select REFDOC
from DOCUM,DOCUMLG
where DOCUM.IDTYPE = 20
and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM
and DOCUMLG.NUMGRP = 0
me donne 8986 enregistrements
alors que
select REFDOC,NUMSERIE.NUMSERIE
from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUM.IDTYPE = 20
and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM
and DOCUMLG.NUMGRP = 0
m'en renvoi seulement 907 ??? la combinaison de left join m'a donc supprimé
8000 tuples alors que je cherche à ce que la ligne soit sélectionnée qu'elle
ait un lien avec S/N ou pas !!!
A titre d'exemple, j'execute les deux requetes suivantes:
select REFDOC from DOCUM,DOCUMLG where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
me donne 8986 enregistrements
alors que
select REFDOC,NUMSERIE.NUMSERIE from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40) left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR) where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
m'en renvoi seulement 907 ??? la combinaison de left join m'a donc supprimé 8000 tuples alors que je cherche à ce que la ligne soit sélectionnée qu'elle ait un lien avec S/N ou pas !!!
Encore merci
Emprin, Frederic
ha j'avais pas vu la table docum je croyais qu'on avais documlg seulement donc la requete que tu cherche :
SELECT REFDOC,NUMSERIE.NUMSERIE
FROMDOCUM
LEFT JOIN DOCUMLG on (DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUM.IDTYPE = 20)
LEFT JOIN T_DONNC on (T_DONNC.ID_LIGNE = DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
LEFT JOIN NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUMLG.NUMGRP = 0
devrait mieu fonctionné je n'avais pas vu la jointure entre docum et documlg
@+
"I.G.LOG" a écrit dans le message de news: 45c333a4$0$27403$
Bon après différents essais, impossible de retrouver les bonnes valeurs !!! Voici la requete sur laquelle je fais des essais, qui devrait me retourner tous les documents DOCUM de type 20 comportant une ligne dans DOCUMLG avec NUMGRP = 0 et ceci qu'il y ait un n° de série ou pas !!!
select REFDOC,NUMSERIE.NUMSERIE from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE > DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40) left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR) where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
Cette requète me retourne seulement une partie des enregistrements, et pas tous ceux que je devrait avoir !!!
Merci à vous tous (et notamment Frederic qui s'est interessé au problème)
"Emprin, Frederic" a écrit dans le message de news:45c20807$0$26744$
Bonjour,
SEELCT * from DOCUMLG LEFT JOIN T_DONNC ON T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG LEFT JOIN NUMSERIE ON NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
cela va renvoyer toutes les ligne de documlg avec ou pas leur n° de serie
c'est avoir mis NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE dans le where qui casse le left join et fait une jointure interne
avec le where au niveau du on ca change tout
Bon dev @+
ha j'avais pas vu la table docum je croyais qu'on avais documlg seulement
donc la requete que tu cherche :
SELECT REFDOC,NUMSERIE.NUMSERIE
FROMDOCUM
LEFT JOIN DOCUMLG
on (DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUM.IDTYPE = 20)
LEFT JOIN T_DONNC
on (T_DONNC.ID_LIGNE = DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
LEFT JOIN NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUMLG.NUMGRP = 0
devrait mieu fonctionné
je n'avais pas vu la jointure entre docum et documlg
@+
"I.G.LOG" <iglog@free.fr> a écrit dans le message de news:
45c333a4$0$27403$ba4acef3@news.orange.fr...
Bon après différents essais, impossible de retrouver les bonnes valeurs
!!!
Voici la requete sur laquelle je fais des essais, qui devrait me retourner
tous les documents DOCUM de type 20 comportant une ligne dans DOCUMLG avec
NUMGRP = 0 et ceci qu'il y ait un n° de série ou pas !!!
select REFDOC,NUMSERIE.NUMSERIE
from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE > DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUM.IDTYPE = 20
and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM
and DOCUMLG.NUMGRP = 0
Cette requète me retourne seulement une partie des enregistrements, et pas
tous ceux que je devrait avoir !!!
ha j'avais pas vu la table docum je croyais qu'on avais documlg seulement donc la requete que tu cherche :
SELECT REFDOC,NUMSERIE.NUMSERIE
FROMDOCUM
LEFT JOIN DOCUMLG on (DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUM.IDTYPE = 20)
LEFT JOIN T_DONNC on (T_DONNC.ID_LIGNE = DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
LEFT JOIN NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUMLG.NUMGRP = 0
devrait mieu fonctionné je n'avais pas vu la jointure entre docum et documlg
@+
"I.G.LOG" a écrit dans le message de news: 45c333a4$0$27403$
Bon après différents essais, impossible de retrouver les bonnes valeurs !!! Voici la requete sur laquelle je fais des essais, qui devrait me retourner tous les documents DOCUM de type 20 comportant une ligne dans DOCUMLG avec NUMGRP = 0 et ceci qu'il y ait un n° de série ou pas !!!
select REFDOC,NUMSERIE.NUMSERIE from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE > DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40) left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR) where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
Cette requète me retourne seulement une partie des enregistrements, et pas tous ceux que je devrait avoir !!!
Merci à vous tous (et notamment Frederic qui s'est interessé au problème)
"Emprin, Frederic" a écrit dans le message de news:45c20807$0$26744$
Bonjour,
SEELCT * from DOCUMLG LEFT JOIN T_DONNC ON T_DONNC.IDDOCUMLG = DOCUMLG.IDDOCUMLG LEFT JOIN NUMSERIE ON NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE
cela va renvoyer toutes les ligne de documlg avec ou pas leur n° de serie
c'est avoir mis NUMSERIE.IDNUMSERIE = T_DONNC.IDNUMSERIE dans le where qui casse le left join et fait une jointure interne
avec le where au niveau du on ca change tout
Bon dev @+
Bob
In article <45c33521$0$5108$, says...
A titre d'exemple, j'execute les deux requetes suivantes:
select REFDOC from DOCUM,DOCUMLG where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
me donne 8986 enregistrements
alors que
select REFDOC,NUMSERIE.NUMSERIE from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE = DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40) left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR) where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
m'en renvoi seulement 907 ??? la combinaison de left join m'a donc suppri mé 8000 tuples alors que je cherche à ce que la ligne soit sélectionné e qu'elle ait un lien avec S/N ou pas !!!
Peut être qu'un LEFT OUTER JOIN serait plus adapté
Bob.
In article <45c33521$0$5108$ba4acef3@news.orange.fr>, iglog@free.fr
says...
A titre d'exemple, j'execute les deux requetes suivantes:
select REFDOC
from DOCUM,DOCUMLG
where DOCUM.IDTYPE = 20
and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM
and DOCUMLG.NUMGRP = 0
me donne 8986 enregistrements
alors que
select REFDOC,NUMSERIE.NUMSERIE
from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE =
DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUM.IDTYPE = 20
and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM
and DOCUMLG.NUMGRP = 0
m'en renvoi seulement 907 ??? la combinaison de left join m'a donc suppri mé
8000 tuples alors que je cherche à ce que la ligne soit sélectionné e qu'elle
ait un lien avec S/N ou pas !!!
Peut être qu'un LEFT OUTER JOIN serait plus adapté
A titre d'exemple, j'execute les deux requetes suivantes:
select REFDOC from DOCUM,DOCUMLG where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
me donne 8986 enregistrements
alors que
select REFDOC,NUMSERIE.NUMSERIE from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE = DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40) left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR) where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
m'en renvoi seulement 907 ??? la combinaison de left join m'a donc suppri mé 8000 tuples alors que je cherche à ce que la ligne soit sélectionné e qu'elle ait un lien avec S/N ou pas !!!
Peut être qu'un LEFT OUTER JOIN serait plus adapté
Bob.
Bob
In article , says...
Peut être qu'un LEFT OUTER JOIN serait plus adapté
Je me réponds a moi même, a priori le OUTER est optionnel pour certains SQL :)
Bob, on en apprend tous les jours
In article <MPG.202d551e13cb65a2989682@news.wanadoo.fr>,
bob@eureka64.com says...
Peut être qu'un LEFT OUTER JOIN serait plus adapté
Je me réponds a moi même, a priori le OUTER est optionnel pour certains
SQL :)
Peut être qu'un LEFT OUTER JOIN serait plus adapté
Je me réponds a moi même, a priori le OUTER est optionnel pour certains SQL :)
Bob, on en apprend tous les jours
I.G.LOG
> SELECT REFDOC,NUMSERIE.NUMSERIE
FROMDOCUM
LEFT JOIN DOCUMLG on (DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUM.IDTYPE = 20)
LEFT JOIN T_DONNC on (T_DONNC.ID_LIGNE = DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
LEFT JOIN NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUMLG.NUMGRP = 0
devrait mieu fonctionné je n'avais pas vu la jointure entre docum et documlg
Bonsoir, Eh bien non après essais cette requète fonctionne mais ne me retourne pas les valeurs escomptées... et je ne comprends pas pourquoi ?!!!
j'ai fait les tests suivants (voir mes posts plus bas)
select REFDOC from DOCUM,DOCUMLG where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
me donne 8986 enregistrements
alors que
select REFDOC,NUMSERIE.NUMSERIE from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40) left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR) where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
ne m'en retourne que 907, alors que je ne vois pas la différence au niveau de ces 2 requetes !!!
Encore merci si tu as une idée du problème
>
SELECT REFDOC,NUMSERIE.NUMSERIE
FROMDOCUM
LEFT JOIN DOCUMLG
on (DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUM.IDTYPE = 20)
LEFT JOIN T_DONNC
on (T_DONNC.ID_LIGNE = DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
LEFT JOIN NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUMLG.NUMGRP = 0
devrait mieu fonctionné
je n'avais pas vu la jointure entre docum et documlg
Bonsoir,
Eh bien non après essais cette requète fonctionne mais ne me retourne pas
les valeurs escomptées... et je ne comprends pas pourquoi ?!!!
j'ai fait les tests suivants (voir mes posts plus bas)
select REFDOC
from DOCUM,DOCUMLG
where DOCUM.IDTYPE = 20
and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM
and DOCUMLG.NUMGRP = 0
me donne 8986 enregistrements
alors que
select REFDOC,NUMSERIE.NUMSERIE
from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUM.IDTYPE = 20
and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM
and DOCUMLG.NUMGRP = 0
ne m'en retourne que 907, alors que je ne vois pas la différence au niveau
de ces 2 requetes !!!
LEFT JOIN DOCUMLG on (DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUM.IDTYPE = 20)
LEFT JOIN T_DONNC on (T_DONNC.ID_LIGNE = DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40)
LEFT JOIN NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR)
where DOCUMLG.NUMGRP = 0
devrait mieu fonctionné je n'avais pas vu la jointure entre docum et documlg
Bonsoir, Eh bien non après essais cette requète fonctionne mais ne me retourne pas les valeurs escomptées... et je ne comprends pas pourquoi ?!!!
j'ai fait les tests suivants (voir mes posts plus bas)
select REFDOC from DOCUM,DOCUMLG where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
me donne 8986 enregistrements
alors que
select REFDOC,NUMSERIE.NUMSERIE from DOCUM,DOCUMLG left join T_DONNC on (T_DONNC.ID_LIGNE DOCUMLG.IDDOCUMLG and T_DONNC.ID_COL = 40) left join NUMSERIE on (NUMSERIE.IDNUMSERIE = T_DONNC._VALEUR) where DOCUM.IDTYPE = 20 and DOCUMLG.IDDOCUM = DOCUM.IDDOCUM and DOCUMLG.NUMGRP = 0
ne m'en retourne que 907, alors que je ne vois pas la différence au niveau de ces 2 requetes !!!