WD12 -34d - Etat et requete parametree avec clause IN
2 réponses
I.G.LOG
Bonjour,
Je dois éditer un état des stocks de un ou plusieurs magasins.
Pour ceci j'utilise un état basé sur la requete suivante:
select
DOCUMLG.IDDOCUM,DOCUMLG.IDARTICLE,DOCUMLG.ETAT,DOCUMLG.QTEREST,DOCUMLG.PRIX,
DOCUMLG.DESIGNATION,DOCUMLG.REFCONST,
TIERS.RAISON,TIERS.ABREV
from
DOCUMLG inner join TIERS on TIERS.IDTIERS = DOCUMLG.IDTIERS
WHERE
DOCUMLG.IDDOCUM in ({pNumMag})
AND DOCUMLG.IDTIERS = {pIdTiers}
AND DOCUMLG.REFCONST between {pDe} and {pA}
AND DOCUMLG.ETAT = {pEtat}
AND DOCUMLG.QTEREST <> 0
order by ABREV,REFCONST,ETAT
Le champ IDDOCUM correspond au magasin.
Je passe donc dans le paramètre {pNumMag} une chaine de caractère comme
"3,6,9" par exemple (pour lister les articles appartenants aux trois
magasins identifiés 3,6 et 9)
D'après mes essais, la requète ne prend en compte que le 1er magasin - dans
l'exemple le magasin n° 3 - au lieu de des 3 magasins (pour confirmer ce
défaut j'ai passé la chaine "6,3,9" et j'obtient les stocks du seul magasin
n° 6) !!!
J'ai exécuté la requète manuellement (avec SQLExec) et là les résultats sont
corrects. Le problème vient donc sur le IN dans le cas d'utilisation avec
iInitRequeteEtat(...)
Avez vous rencontré ce problème et connaissez vous une solution ?
Merci à tous
Phil
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
JeAn-PhI
I.G.LOG a exprimé avec précision :
Bonjour,
Je dois éditer un état des stocks de un ou plusieurs magasins. Pour ceci j'utilise un état basé sur la requete suivante:
select DOCUMLG.IDDOCUM,DOCUMLG.IDARTICLE,DOCUMLG.ETAT,DOCUMLG.QTEREST,DOCUMLG.PRIX, DOCUMLG.DESIGNATION,DOCUMLG.REFCONST, TIERS.RAISON,TIERS.ABREV from DOCUMLG inner join TIERS on TIERS.IDTIERS = DOCUMLG.IDTIERS WHERE DOCUMLG.IDDOCUM in ({pNumMag}) AND DOCUMLG.IDTIERS = {pIdTiers} AND DOCUMLG.REFCONST between {pDe} and {pA} AND DOCUMLG.ETAT = {pEtat} AND DOCUMLG.QTEREST <> 0 order by ABREV,REFCONST,ETAT
Le champ IDDOCUM correspond au magasin. Je passe donc dans le paramètre {pNumMag} une chaine de caractère comme "3,6,9" par exemple (pour lister les articles appartenants aux trois magasins identifiés 3,6 et 9) D'après mes essais, la requète ne prend en compte que le 1er magasin - dans l'exemple le magasin n° 3 - au lieu de des 3 magasins (pour confirmer ce défaut j'ai passé la chaine "6,3,9" et j'obtient les stocks du seul magasin n° 6) !!! J'ai exécuté la requète manuellement (avec SQLExec) et là les résultats sont corrects. Le problème vient donc sur le IN dans le cas d'utilisation avec iInitRequeteEtat(...) Avez vous rencontré ce problème et connaissez vous une solution ? Merci à tous Phil
DOCUMLG.IDDOCUM -> texte alors {pNumMag} = '3','6','9' ou '3';'6';'9' DOCUMLG.IDDOCUM -> numérique alors {pNumMag} = 3,6,9 ou 3;6;9
-- Cordialement JeAn-PhI
I.G.LOG a exprimé avec précision :
Bonjour,
Je dois éditer un état des stocks de un ou plusieurs magasins.
Pour ceci j'utilise un état basé sur la requete suivante:
select
DOCUMLG.IDDOCUM,DOCUMLG.IDARTICLE,DOCUMLG.ETAT,DOCUMLG.QTEREST,DOCUMLG.PRIX,
DOCUMLG.DESIGNATION,DOCUMLG.REFCONST,
TIERS.RAISON,TIERS.ABREV
from
DOCUMLG inner join TIERS on TIERS.IDTIERS = DOCUMLG.IDTIERS
WHERE
DOCUMLG.IDDOCUM in ({pNumMag})
AND DOCUMLG.IDTIERS = {pIdTiers}
AND DOCUMLG.REFCONST between {pDe} and {pA}
AND DOCUMLG.ETAT = {pEtat}
AND DOCUMLG.QTEREST <> 0
order by ABREV,REFCONST,ETAT
Le champ IDDOCUM correspond au magasin.
Je passe donc dans le paramètre {pNumMag} une chaine de caractère comme
"3,6,9" par exemple (pour lister les articles appartenants aux trois
magasins identifiés 3,6 et 9)
D'après mes essais, la requète ne prend en compte que le 1er magasin - dans
l'exemple le magasin n° 3 - au lieu de des 3 magasins (pour confirmer ce
défaut j'ai passé la chaine "6,3,9" et j'obtient les stocks du seul magasin
n° 6) !!!
J'ai exécuté la requète manuellement (avec SQLExec) et là les résultats sont
corrects. Le problème vient donc sur le IN dans le cas d'utilisation avec
iInitRequeteEtat(...)
Avez vous rencontré ce problème et connaissez vous une solution ?
Merci à tous
Phil
DOCUMLG.IDDOCUM -> texte alors {pNumMag} = '3','6','9' ou '3';'6';'9'
DOCUMLG.IDDOCUM -> numérique alors {pNumMag} = 3,6,9 ou 3;6;9
Je dois éditer un état des stocks de un ou plusieurs magasins. Pour ceci j'utilise un état basé sur la requete suivante:
select DOCUMLG.IDDOCUM,DOCUMLG.IDARTICLE,DOCUMLG.ETAT,DOCUMLG.QTEREST,DOCUMLG.PRIX, DOCUMLG.DESIGNATION,DOCUMLG.REFCONST, TIERS.RAISON,TIERS.ABREV from DOCUMLG inner join TIERS on TIERS.IDTIERS = DOCUMLG.IDTIERS WHERE DOCUMLG.IDDOCUM in ({pNumMag}) AND DOCUMLG.IDTIERS = {pIdTiers} AND DOCUMLG.REFCONST between {pDe} and {pA} AND DOCUMLG.ETAT = {pEtat} AND DOCUMLG.QTEREST <> 0 order by ABREV,REFCONST,ETAT
Le champ IDDOCUM correspond au magasin. Je passe donc dans le paramètre {pNumMag} une chaine de caractère comme "3,6,9" par exemple (pour lister les articles appartenants aux trois magasins identifiés 3,6 et 9) D'après mes essais, la requète ne prend en compte que le 1er magasin - dans l'exemple le magasin n° 3 - au lieu de des 3 magasins (pour confirmer ce défaut j'ai passé la chaine "6,3,9" et j'obtient les stocks du seul magasin n° 6) !!! J'ai exécuté la requète manuellement (avec SQLExec) et là les résultats sont corrects. Le problème vient donc sur le IN dans le cas d'utilisation avec iInitRequeteEtat(...) Avez vous rencontré ce problème et connaissez vous une solution ? Merci à tous Phil
DOCUMLG.IDDOCUM -> texte alors {pNumMag} = '3','6','9' ou '3';'6';'9' DOCUMLG.IDDOCUM -> numérique alors {pNumMag} = 3,6,9 ou 3;6;9
-- Cordialement JeAn-PhI
I.G.LOG
> DOCUMLG.IDDOCUM -> texte alors {pNumMag} = '3','6','9' ou '3';'6';'9' DOCUMLG.IDDOCUM -> numérique alors {pNumMag} = 3,6,9 ou 3;6;9
Bonjour, IDDOCUM est un entier (clé étrangère correspondant à l'ID auto du corps de document stock) J'ai essayé les deux syntaxes sans succès:
lMag est une chaine
lMag = "3,6,9" // 1er essai -> pb idem lMag = "'3','6','9'" // 2eme essai -> pb idem iInitRequeteEtat(EARTICLE,lMag) iImprimeEtat(EARTICLE)
// La requète ... WHERE DOCUMLG.IDDOCUM in ({pNumMag}) ...
Encore merci
> DOCUMLG.IDDOCUM -> texte alors {pNumMag} = '3','6','9' ou '3';'6';'9'
DOCUMLG.IDDOCUM -> numérique alors {pNumMag} = 3,6,9 ou 3;6;9
Bonjour,
IDDOCUM est un entier (clé étrangère correspondant à l'ID auto du corps de
document stock)
J'ai essayé les deux syntaxes sans succès:
lMag est une chaine
lMag = "3,6,9" // 1er essai -> pb idem
lMag = "'3','6','9'" // 2eme essai -> pb idem
iInitRequeteEtat(EARTICLE,lMag)
iImprimeEtat(EARTICLE)
// La requète
...
WHERE
DOCUMLG.IDDOCUM in ({pNumMag})
...