Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[WD12] Condition "Est dans la liste" / IN

1 réponse
Avatar
MJ.Finar
Bonjour,

Je viens vous faire part d'un probl=E8me qui semble pour le moment
totalement incompr=E9hensible, voila le topo :

Une requete doit r=E9cup=E9rer une liste d'enregistrement, =E0 partir d'un
fichier HyperFile (en mode C/S), qui fonctionne avec des identifiants
uniques. Cette requete dispose d'une condition "Est ans la liste", qui
revoit une liste d'ID correspondants aux identifiants uniques de
certains enregistrements.

Probl=E8me : Malgr=E9 des identifiants corrects et nombreux pass=E9s en
parametre, la requete ne r=E9cup=E8re jamais que le premier
enregistrement, voir m=EAme aucun.

Le probl=E8me est apparu avec une requete cr=E9=E9e sous l'=E9diteur de
requete, puis sur une requete construite en SQL dans le code. Dans les
deux cas, une =E9x=E9cution en "Test" de la requete donne le m=EAme
probl=E8me, pareil en utilisant le code SQL de la requete sur WDMap ou
directement via le Centre de Controle Hyper File.

Exemple de la requete :

SELECT
OUTILS.IDOutil AS IDOutil,
OUTILS.IDFormat AS IDFormat,
OUTILS.Laize AS Laize,
OUTILS.Developpe AS Developpe
FROM
OUTILS
WHERE
OUTILS.IDOutil IN ({ParamListeIDOutils})

Avec {ParamListeIDOutils} =3D 1,2,3,4,5,6,7,8,9,10... Par exemple, et
des enregistrements correspondants bien =E0 ces num=E9ros dans le fichier
OUTILS.

Pr=E9cision : M=EAme r=E9sultat en changeant le s=E9parateur pour un point
virgule, un TAB, un RC...

Voila voila, des suggestions pour r=E9soudre ca ?

Finar

1 réponse

Avatar
Albert
Bonjour,

Mes requetes SQL contruites sur le code suivant fonctionnent
correctement

Le parametre sCpte est transmis a la procédure

Liste de compte par exemple : ('631','632','635','636')

// [< #1 Compte - #2 Liste de comptes >]
SELON nType
CAS 1 : sNoCpte = ChaîneConstruit(" = '%1'", sCpte)
CAS 2 : sNoCpte = ChaîneConstruit(" IN %1", sCpte)
FIN

// [< Code de la requête >]
sCode = [
SELECT SUM ( [MvtDébit] - [MvtCrédit] ) AS Solde
FROM LigneMvt
WHERE [Exercice] = '%1'
AND [IDCompte] %2
]

Cordialement

Albert