WD8 - problemes SQL

Le
I.G.LOG
Bonjour à tous,
Toujours mes problemes SQL: requetes qui ne me renvoient pas les bonnes
donnees

Voici l'exemple sur lequel "je deviens fou"
Objet: recuperer tous le travaux en cours avec leur article associe (travaux
de reparation sur un article). Precision importante: pour cet exemple, je
teste les travaux de negoce: ceux-ci n'ont pas d'article (L.ARCLEUNIK=0,
d'ou le LEFT OUTER JOIN)

Avec la requete:

select O.OLCLEUNIK, F.TYPEPRE, A.NUMCAT, A.NUMFAM from OL O, PRESTAT P,
FAMPRES F,
OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and C.NUMFAM =
A.NUMFAM)
where O.TERMINE = 0
and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
L.NUMCONTROLE = O.NUMCONTROLE)
and (P.PRCLEUNIK = L.NUMERO)
and (F.FPCLEUNIK = P.FPCLEUNIK)
and (F.TYPEPRE = 'N ')

-> aucun tuple retourné

Avec la meme requete sans la double condition dans la jointure externe:

select O.OLCLEUNIK, F.TYPEPRE, A.NUMCAT, A.NUMFAM from OL O, PRESTAT P,
FAMPRES F,
OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT)
where O.TERMINE = 0
and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
L.NUMCONTROLE = O.NUMCONTROLE)
and (P.PRCLEUNIK = L.NUMERO)
and (F.FPCLEUNIK = P.FPCLEUNIK)
and (F.TYPEPRE = 'N ')

-> me retourne 62 tuples (semble OK)

Plus fort (et pourtant plus simple):

select O.OLCLEUNIK, O.TYPEPRE, A.NUMCAT, A.NUMFAM, from OL O, PRESTAT P,
OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and C.NUMFAM =
A.NUMFAM)
where O.TERMINE = 0
and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
L.NUMCONTROLE = O.NUMCONTROLE)
and (P.PRCLEUNIK = L.NUMERO)

ne me renvoie que les tuples ayant un article (L.ARCLEUNIK<>0)

et (sans la selection de la prestation travaux L.NUMERO)

select O.OLCLEUNIK, O.TYPEPRE, A.NUMCAT, A.NUMFAM, L.NUMERO from OL O,
OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and C.NUMFAM =
A.NUMFAM)
where O.TERMINE = 0
and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
L.NUMCONTROLE = O.NUMCONTROLE)

me renvoie les bonnes donnes (c'est a dire, meme les travaux negoce ayant
L.ARCLEUNIK=0)


Avez-vous rencontré ce type de problème
Merci à tous.

PS: depuis ce matin version 814m mais essais avec 814j identiques (meme pb)
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Dev
Le #13078601
Bonjour,
question bête : ces requêtes fonctionnent-elles dans un autre environnement
que le requeteur Windev ( cutesql par exemple). Question nulle et non avenue
si systeme de fichier = HF

--
Cordialement
Christophe Charron

Service Développement
PROLOGIQ
7 bis Rue des Aulnes
69410 Champagne au Mont d'Or

Tel : 0 437 499 107
Fax : 0 437 499 105
mailto:

"I.G.LOG" news:c7fl5f$114$
Bonjour à tous,
Toujours mes problemes SQL: requetes qui ne me renvoient pas les bonnes
donnees

Voici l'exemple sur lequel "je deviens fou"
Objet: recuperer tous le travaux en cours avec leur article associe


(travaux
de reparation sur un article). Precision importante: pour cet exemple, je
teste les travaux de negoce: ceux-ci n'ont pas d'article (L.ARCLEUNIK=0,
d'ou le LEFT OUTER JOIN)

Avec la requete:

select O.OLCLEUNIK, F.TYPEPRE, A.NUMCAT, A.NUMFAM from OL O, PRESTAT P,
FAMPRES F,
OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and C.NUMFAM > A.NUMFAM)
where O.TERMINE = 0
and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
L.NUMCONTROLE = O.NUMCONTROLE)
and (P.PRCLEUNIK = L.NUMERO)
and (F.FPCLEUNIK = P.FPCLEUNIK)
and (F.TYPEPRE = 'N ')

-> aucun tuple retourné

Avec la meme requete sans la double condition dans la jointure externe:

select O.OLCLEUNIK, F.TYPEPRE, A.NUMCAT, A.NUMFAM from OL O, PRESTAT P,
FAMPRES F,
OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT)
where O.TERMINE = 0
and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
L.NUMCONTROLE = O.NUMCONTROLE)
and (P.PRCLEUNIK = L.NUMERO)
and (F.FPCLEUNIK = P.FPCLEUNIK)
and (F.TYPEPRE = 'N ')

-> me retourne 62 tuples (semble OK)

Plus fort (et pourtant plus simple):

select O.OLCLEUNIK, O.TYPEPRE, A.NUMCAT, A.NUMFAM, from OL O, PRESTAT P,
OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and C.NUMFAM > A.NUMFAM)
where O.TERMINE = 0
and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
L.NUMCONTROLE = O.NUMCONTROLE)
and (P.PRCLEUNIK = L.NUMERO)

ne me renvoie que les tuples ayant un article (L.ARCLEUNIK<>0)

et (sans la selection de la prestation travaux L.NUMERO)

select O.OLCLEUNIK, O.TYPEPRE, A.NUMCAT, A.NUMFAM, L.NUMERO from OL O,
OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and C.NUMFAM > A.NUMFAM)
where O.TERMINE = 0
and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
L.NUMCONTROLE = O.NUMCONTROLE)

me renvoie les bonnes donnes (c'est a dire, meme les travaux negoce ayant
L.ARCLEUNIK=0)


Avez-vous rencontré ce type de problème
Merci à tous.

PS: depuis ce matin version 814m mais essais avec 814j identiques (meme


pb)




I.G.LOG
Le #13078581
Pour résumer:
select O.OLCLEUNIK, O.TYPEPRE, L.NUMERO from OL O, PRESTAT P,
OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK)

where O.TERMINE = 0
and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
L.NUMCONTROLE = O.NUMCONTROLE)
and (P.PRCLEUNIK = L.NUMERO)
-> fonctionne

select O.OLCLEUNIK, O.TYPEPRE, L.NUMERO from OL O, PRESTAT P,
OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and C.NUMFAM A.NUMFAM)
where O.TERMINE = 0
and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
L.NUMCONTROLE = O.NUMCONTROLE)
and (P.PRCLEUNIK = L.NUMERO)
-> ne fonctionne pas ! (pb de jointures externes "chainees")
I.G.LOG
Le #13078571
Desole (ai une nouvelle fois oublie de preciser la base: HF7)

"Dev" news:409b599e$0$18530$
Bonjour,
question bête : ces requêtes fonctionnent-elles dans un autre


environnement
que le requeteur Windev ( cutesql par exemple). Question nulle et non


avenue
si systeme de fichier = HF

--
Cordialement
Christophe Charron

Service Développement
PROLOGIQ
7 bis Rue des Aulnes
69410 Champagne au Mont d'Or

Tel : 0 437 499 107
Fax : 0 437 499 105
mailto:

"I.G.LOG" news:c7fl5f$114$
> Bonjour à tous,
> Toujours mes problemes SQL: requetes qui ne me renvoient pas les bonnes
> donnees
>
> Voici l'exemple sur lequel "je deviens fou"
> Objet: recuperer tous le travaux en cours avec leur article associe
(travaux
> de reparation sur un article). Precision importante: pour cet exemple,


je
> teste les travaux de negoce: ceux-ci n'ont pas d'article (L.ARCLEUNIK=0,
> d'ou le LEFT OUTER JOIN)
>
> Avec la requete:
>
> select O.OLCLEUNIK, F.TYPEPRE, A.NUMCAT, A.NUMFAM from OL O, PRESTAT P,
> FAMPRES F,
> OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
> ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and C.NUMFAM


> > A.NUMFAM)
> where O.TERMINE = 0
> and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
> L.NUMCONTROLE = O.NUMCONTROLE)
> and (P.PRCLEUNIK = L.NUMERO)
> and (F.FPCLEUNIK = P.FPCLEUNIK)
> and (F.TYPEPRE = 'N ')
>
> -> aucun tuple retourné
>
> Avec la meme requete sans la double condition dans la jointure externe:
>
> select O.OLCLEUNIK, F.TYPEPRE, A.NUMCAT, A.NUMFAM from OL O, PRESTAT P,
> FAMPRES F,
> OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
> ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT)
> where O.TERMINE = 0
> and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
> L.NUMCONTROLE = O.NUMCONTROLE)
> and (P.PRCLEUNIK = L.NUMERO)
> and (F.FPCLEUNIK = P.FPCLEUNIK)
> and (F.TYPEPRE = 'N ')
>
> -> me retourne 62 tuples (semble OK)
>
> Plus fort (et pourtant plus simple):
>
> select O.OLCLEUNIK, O.TYPEPRE, A.NUMCAT, A.NUMFAM, from OL O, PRESTAT P,
> OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
> ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and C.NUMFAM


> > A.NUMFAM)
> where O.TERMINE = 0
> and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
> L.NUMCONTROLE = O.NUMCONTROLE)
> and (P.PRCLEUNIK = L.NUMERO)
>
> ne me renvoie que les tuples ayant un article (L.ARCLEUNIK<>0)
>
> et (sans la selection de la prestation travaux L.NUMERO)
>
> select O.OLCLEUNIK, O.TYPEPRE, A.NUMCAT, A.NUMFAM, L.NUMERO from OL O,
> OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
> ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and C.NUMFAM


> > A.NUMFAM)
> where O.TERMINE = 0
> and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124 and
> L.NUMCONTROLE = O.NUMCONTROLE)
>
> me renvoie les bonnes donnes (c'est a dire, meme les travaux negoce


ayant
> L.ARCLEUNIK=0)
>
>
> Avez-vous rencontré ce type de problème
> Merci à tous.
>
> PS: depuis ce matin version 814m mais essais avec 814j identiques (meme
pb)
>
>




Dev
Le #13078531
Désolé alors !!! Je ne connais pas ...

--
Cordialement
Christophe Charron

Service Développement
PROLOGIQ
7 bis Rue des Aulnes
69410 Champagne au Mont d'Or

Tel : 0 437 499 107
Fax : 0 437 499 105
mailto:

"I.G.LOG" news:c7fmco$cft$
Desole (ai une nouvelle fois oublie de preciser la base: HF7)

"Dev" news:409b599e$0$18530$
> Bonjour,
> question bête : ces requêtes fonctionnent-elles dans un autre
environnement
> que le requeteur Windev ( cutesql par exemple). Question nulle et non
avenue
> si systeme de fichier = HF
>
> --
> Cordialement
> Christophe Charron
>
> Service Développement
> PROLOGIQ
> 7 bis Rue des Aulnes
> 69410 Champagne au Mont d'Or
>
> Tel : 0 437 499 107
> Fax : 0 437 499 105
> mailto:
>
> "I.G.LOG" > news:c7fl5f$114$
> > Bonjour à tous,
> > Toujours mes problemes SQL: requetes qui ne me renvoient pas les


bonnes
> > donnees
> >
> > Voici l'exemple sur lequel "je deviens fou"
> > Objet: recuperer tous le travaux en cours avec leur article associe
> (travaux
> > de reparation sur un article). Precision importante: pour cet exemple,
je
> > teste les travaux de negoce: ceux-ci n'ont pas d'article


(L.ARCLEUNIK=0,
> > d'ou le LEFT OUTER JOIN)
> >
> > Avec la requete:
> >
> > select O.OLCLEUNIK, F.TYPEPRE, A.NUMCAT, A.NUMFAM from OL O, PRESTAT


P,
> > FAMPRES F,
> > OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
> > ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and


C.NUMFAM
> > > A.NUMFAM)
> > where O.TERMINE = 0
> > and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124


and
> > L.NUMCONTROLE = O.NUMCONTROLE)
> > and (P.PRCLEUNIK = L.NUMERO)
> > and (F.FPCLEUNIK = P.FPCLEUNIK)
> > and (F.TYPEPRE = 'N ')
> >
> > -> aucun tuple retourné
> >
> > Avec la meme requete sans la double condition dans la jointure


externe:
> >
> > select O.OLCLEUNIK, F.TYPEPRE, A.NUMCAT, A.NUMFAM from OL O, PRESTAT


P,
> > FAMPRES F,
> > OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
> > ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT)
> > where O.TERMINE = 0
> > and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124


and
> > L.NUMCONTROLE = O.NUMCONTROLE)
> > and (P.PRCLEUNIK = L.NUMERO)
> > and (F.FPCLEUNIK = P.FPCLEUNIK)
> > and (F.TYPEPRE = 'N ')
> >
> > -> me retourne 62 tuples (semble OK)
> >
> > Plus fort (et pourtant plus simple):
> >
> > select O.OLCLEUNIK, O.TYPEPRE, A.NUMCAT, A.NUMFAM, from OL O, PRESTAT


P,
> > OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
> > ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and


C.NUMFAM
> > > A.NUMFAM)
> > where O.TERMINE = 0
> > and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124


and
> > L.NUMCONTROLE = O.NUMCONTROLE)
> > and (P.PRCLEUNIK = L.NUMERO)
> >
> > ne me renvoie que les tuples ayant un article (L.ARCLEUNIK<>0)
> >
> > et (sans la selection de la prestation travaux L.NUMERO)
> >
> > select O.OLCLEUNIK, O.TYPEPRE, A.NUMCAT, A.NUMFAM, L.NUMERO from OL O,
> > OLPROLG L left outer join ARTICLES A on (A.ARCLEUNIK = L.ARCLEUNIK),
> > ARTICLES left outer join FAMILLE C on (C.NUMCAT = A.NUMCAT and


C.NUMFAM
> > > A.NUMFAM)
> > where O.TERMINE = 0
> > and (L.OLCLEUNIK = O.OLCLEUNIK and L.NUMGRP = 128 and L.NUMPHA = 124


and
> > L.NUMCONTROLE = O.NUMCONTROLE)
> >
> > me renvoie les bonnes donnes (c'est a dire, meme les travaux negoce
ayant
> > L.ARCLEUNIK=0)
> >
> >
> > Avez-vous rencontré ce type de problème
> > Merci à tous.
> >
> > PS: depuis ce matin version 814m mais essais avec 814j identiques


(meme
> pb)
> >
> >
>
>




Publicité
Poster une réponse
Anonyme