OVH Cloud OVH Cloud

Langage sql et éditeur de requete

3 réponses
Avatar
I.G.LOG
WD 7.5206g, Win 2000

Bonsoir à tous,
J'ai un problème avec l'éditeur de requètes. A l'exécution de cette requète,
j'ai le message "problème d'initialisation de la requète <Facture>, rubrique
de tri absente de la clause select"
Je ne comprends pas, les C1.C1CLEUNIK, C1.NUMGRP, C1.NUMLIGNE sont pourtant
bien dans la clause select ?!

select C.C2CLEUNIK, C.RAISON, C.ADRESSE1, C.DATE, C.ADRESSE2, C.CODEPOST,
C.VILLE, C.PAYS, C.ACOMPTE,
C.ABRDEVISE, C.MODEPAIEM, C.ECHEANCE, C.DESIGNBANQ, C.MEMOTVA, C.REFERENCE,
C.REMARQUE, C.NUMFAC,
C.NUMDEV, C.TAUXTVA1, C.TAUXTVA2, C.TAUXTVA3, C.TAUXTVA4,
C1.DESIGNATION, C1.C1CLEUNIK, C1.NUMLIGNE, C1.NUMGRP, C1.ETAT, C1.QTE,
C1.REMISE, C1.PRIX, C1.NUMTVA,
C2.C1CLEUNIK, C2.INDEX,
C3.CLCLEUNIK, C3.CODECEE,
O.OLCLEUNIK, O.ARCLEUNIK, O.TYPEPRE, O.INDEX, O.OLLIE,
D.DESIGNATION, D.CENTIMES,
C4.RAISON, C5.DESIGNATION,
S.CODECEE, T.TYPETVA, A.DESIGNATION, D1.NUMDOS, D1.DATE, O1.ANCLEUNIK
from CLIFAC C, CLIFACLG C1, CLILIV C2, OL O, DEVISE D,
CLIENT C3, SOCIETE S, TVA T, CONSTRUC C4, CATEGOR C5,
OL left outer join ARTICLES A on O.ARCLEUNIK = A.ARCLEUNIK,
OL left outer join DOSSIER D1 on O.DSCLEUNIK = D1.DSCLEUNIK,
OL left outer join OLREPAR O1 on O.OLCLEUNIK = O1.OLCLEUNIK
where (C2.C1CLEUNIK = C1.C1CLEUNIK)
and (C2.OLCLEUNIK = O.OLCLEUNIK)
and (C.CLCLEUNIK = C3.CLCLEUNIK)
and (C.NUMSOC = S.NUMSOC)
and (C.NUMTVA = T.NUMTVA)
and (C.ABRDEVISE = D.ABRDEVISE)
and (A.ABRCONST = C4.ABRCONST)
and (A.NUMCAT = C5.NUMCAT)
and (C.C2CLEUNIK = C1.C2CLEUNIK)
and (C.C2CLEUNIK = {pC2Cleunik})
and (C1.PRIX <> 0)
and (C1.NUMGRP <> 0)
order by C1.C1CLEUNIK, C1.NUMGRP, C1.NUMLIGNE

Par ailleurs (en enlevant le order by), à l'exécution je n'ai aucun résultat
alors que je trouve bien des enregistrements sous wdmap; voici mon code:
SI PAS HExécuteRequête(Facture,hRequêteInterruptible,1000) ALORS
Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
RETOUR
FIN
// lecture du premier enregistrement de la requête
HLitPremier(Facture)
TANTQUE PAS HEnDehors()
// Traitement sur l'enregistrement de la requête
Trace(Facture.numgrp+Facture.designation)

// lecture de l'enregistrement suivant
HLitSuivant(Facture)
FIN
HAnnuleDéclaration(Facture)


Merci à tous ceux qui répondront
P. Hantz

3 réponses

Avatar
mat
Si c'est juste qu'on peut se passer de AS, j'ai appris quelque chose ce
soir. La seule chose qui me semble douteux c'est l'usage de
OL left outer join ARTICLES A on O.ARCLEUNIK = A.ARCLEUNIK
après avoir spécifié OL O dans FROM, car ensuite toute référence se fait à
O.

Le code a l'air très net, mais il ne vient justement pas de l'éditeur de
requêtes. En l'utilisant pour créer le code de base on gagne souvent du
temps ou trouve les erreurs et c'est vite fait.


"I.G.LOG" a écrit dans le message de
news:bs7d7t$uae$
WD 7.5206g, Win 2000

Bonsoir à tous,
J'ai un problème avec l'éditeur de requètes. A l'exécution de cette


requète,
j'ai le message "problème d'initialisation de la requète <Facture>,


rubrique
de tri absente de la clause select"
Je ne comprends pas, les C1.C1CLEUNIK, C1.NUMGRP, C1.NUMLIGNE sont


pourtant
bien dans la clause select ?!

select C.C2CLEUNIK, C.RAISON, C.ADRESSE1, C.DATE, C.ADRESSE2, C.CODEPOST,
C.VILLE, C.PAYS, C.ACOMPTE,
C.ABRDEVISE, C.MODEPAIEM, C.ECHEANCE, C.DESIGNBANQ, C.MEMOTVA,


C.REFERENCE,
C.REMARQUE, C.NUMFAC,
C.NUMDEV, C.TAUXTVA1, C.TAUXTVA2, C.TAUXTVA3, C.TAUXTVA4,
C1.DESIGNATION, C1.C1CLEUNIK, C1.NUMLIGNE, C1.NUMGRP, C1.ETAT, C1.QTE,
C1.REMISE, C1.PRIX, C1.NUMTVA,
C2.C1CLEUNIK, C2.INDEX,
C3.CLCLEUNIK, C3.CODECEE,
O.OLCLEUNIK, O.ARCLEUNIK, O.TYPEPRE, O.INDEX, O.OLLIE,
D.DESIGNATION, D.CENTIMES,
C4.RAISON, C5.DESIGNATION,
S.CODECEE, T.TYPETVA, A.DESIGNATION, D1.NUMDOS, D1.DATE, O1.ANCLEUNIK
from CLIFAC C, CLIFACLG C1, CLILIV C2, OL O, DEVISE D,
CLIENT C3, SOCIETE S, TVA T, CONSTRUC C4, CATEGOR C5,
OL left outer join ARTICLES A on O.ARCLEUNIK = A.ARCLEUNIK,
OL left outer join DOSSIER D1 on O.DSCLEUNIK = D1.DSCLEUNIK,
OL left outer join OLREPAR O1 on O.OLCLEUNIK = O1.OLCLEUNIK
where (C2.C1CLEUNIK = C1.C1CLEUNIK)
and (C2.OLCLEUNIK = O.OLCLEUNIK)
and (C.CLCLEUNIK = C3.CLCLEUNIK)
and (C.NUMSOC = S.NUMSOC)
and (C.NUMTVA = T.NUMTVA)
and (C.ABRDEVISE = D.ABRDEVISE)
and (A.ABRCONST = C4.ABRCONST)
and (A.NUMCAT = C5.NUMCAT)
and (C.C2CLEUNIK = C1.C2CLEUNIK)
and (C.C2CLEUNIK = {pC2Cleunik})
and (C1.PRIX <> 0)
and (C1.NUMGRP <> 0)
order by C1.C1CLEUNIK, C1.NUMGRP, C1.NUMLIGNE

Par ailleurs (en enlevant le order by), à l'exécution je n'ai aucun


résultat
alors que je trouve bien des enregistrements sous wdmap; voici mon code:
SI PAS HExécuteRequête(Facture,hRequêteInterruptible,1000) ALORS
Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
RETOUR
FIN
// lecture du premier enregistrement de la requête
HLitPremier(Facture)
TANTQUE PAS HEnDehors()
// Traitement sur l'enregistrement de la requête
Trace(Facture.numgrp+Facture.designation)

// lecture de l'enregistrement suivant
HLitSuivant(Facture)
FIN
HAnnuleDéclaration(Facture)


Merci à tous ceux qui répondront
P. Hantz




Avatar
I.G.LOG
En effet, j'ai saisi le code directement hors éditeur; comportement
aléatoire (l'interpreteur fait un peu ce qu'il veut)
En ce qui concerne la répétition de OL avant le LEFT OUTER JOIN: c'est le
seul moyen que j'ai trouvé pour ne pas avoir un rejet de la requète (message
"LEFT inatendu" ??!!) bizarre ! Je vais essayer comme vous le conseillez de
passer par l'éditeur mais ça m'ennuie car mes requetes existent déjà.
Merci de la réponse

"mat" a écrit dans le message de
news:3fe77fe7$
Si c'est juste qu'on peut se passer de AS, j'ai appris quelque chose ce
soir. La seule chose qui me semble douteux c'est l'usage de
OL left outer join ARTICLES A on O.ARCLEUNIK = A.ARCLEUNIK
après avoir spécifié OL O dans FROM, car ensuite toute référence se fait à
O.

Le code a l'air très net, mais il ne vient justement pas de l'éditeur de
requêtes. En l'utilisant pour créer le code de base on gagne souvent du
temps ou trouve les erreurs et c'est vite fait.


"I.G.LOG" a écrit dans le message de
news:bs7d7t$uae$
> WD 7.5206g, Win 2000
>
> Bonsoir à tous,
> J'ai un problème avec l'éditeur de requètes. A l'exécution de cette
requète,
> j'ai le message "problème d'initialisation de la requète <Facture>,
rubrique
> de tri absente de la clause select"
> Je ne comprends pas, les C1.C1CLEUNIK, C1.NUMGRP, C1.NUMLIGNE sont
pourtant
> bien dans la clause select ?!
>
> select C.C2CLEUNIK, C.RAISON, C.ADRESSE1, C.DATE, C.ADRESSE2,


C.CODEPOST,
> C.VILLE, C.PAYS, C.ACOMPTE,
> C.ABRDEVISE, C.MODEPAIEM, C.ECHEANCE, C.DESIGNBANQ, C.MEMOTVA,
C.REFERENCE,
> C.REMARQUE, C.NUMFAC,
> C.NUMDEV, C.TAUXTVA1, C.TAUXTVA2, C.TAUXTVA3, C.TAUXTVA4,
> C1.DESIGNATION, C1.C1CLEUNIK, C1.NUMLIGNE, C1.NUMGRP, C1.ETAT, C1.QTE,
> C1.REMISE, C1.PRIX, C1.NUMTVA,
> C2.C1CLEUNIK, C2.INDEX,
> C3.CLCLEUNIK, C3.CODECEE,
> O.OLCLEUNIK, O.ARCLEUNIK, O.TYPEPRE, O.INDEX, O.OLLIE,
> D.DESIGNATION, D.CENTIMES,
> C4.RAISON, C5.DESIGNATION,
> S.CODECEE, T.TYPETVA, A.DESIGNATION, D1.NUMDOS, D1.DATE, O1.ANCLEUNIK
> from CLIFAC C, CLIFACLG C1, CLILIV C2, OL O, DEVISE D,
> CLIENT C3, SOCIETE S, TVA T, CONSTRUC C4, CATEGOR C5,
> OL left outer join ARTICLES A on O.ARCLEUNIK = A.ARCLEUNIK,
> OL left outer join DOSSIER D1 on O.DSCLEUNIK = D1.DSCLEUNIK,
> OL left outer join OLREPAR O1 on O.OLCLEUNIK = O1.OLCLEUNIK
> where (C2.C1CLEUNIK = C1.C1CLEUNIK)
> and (C2.OLCLEUNIK = O.OLCLEUNIK)
> and (C.CLCLEUNIK = C3.CLCLEUNIK)
> and (C.NUMSOC = S.NUMSOC)
> and (C.NUMTVA = T.NUMTVA)
> and (C.ABRDEVISE = D.ABRDEVISE)
> and (A.ABRCONST = C4.ABRCONST)
> and (A.NUMCAT = C5.NUMCAT)
> and (C.C2CLEUNIK = C1.C2CLEUNIK)
> and (C.C2CLEUNIK = {pC2Cleunik})
> and (C1.PRIX <> 0)
> and (C1.NUMGRP <> 0)
> order by C1.C1CLEUNIK, C1.NUMGRP, C1.NUMLIGNE
>
> Par ailleurs (en enlevant le order by), à l'exécution je n'ai aucun
résultat
> alors que je trouve bien des enregistrements sous wdmap; voici mon code:
> SI PAS HExécuteRequête(Facture,hRequêteInterruptible,1000) ALORS
> Erreur("Erreur d'initialisation de la requête"+RC+HErreurInfo())
> RETOUR
> FIN
> // lecture du premier enregistrement de la requête
> HLitPremier(Facture)
> TANTQUE PAS HEnDehors()
> // Traitement sur l'enregistrement de la requête
> Trace(Facture.numgrp+Facture.designation)
>
> // lecture de l'enregistrement suivant
> HLitSuivant(Facture)
> FIN
> HAnnuleDéclaration(Facture)
>
>
> Merci à tous ceux qui répondront
> P. Hantz
>
>




Avatar
SP&B
> En effet, j'ai saisi le code directement hors éditeur; comportement
aléatoire (l'interpreteur fait un peu ce qu'il veut)



Bonjour,

Pouvez-vous indiquer votre version complète de Windev.

Sincères salutations et Joyeux Noël.
--
Jean-Claude FLAJOULOT
Sécurité, Pointage & Biométrie

enlever _no.spam pour me contacter en PV.