|
| Impossible d'ignorer paramètre dans une requête |
| Iniciado por cecile.aliaga, 07,ago. 2020 12:25 - 3 respuestas |
| |
| | | |
|
| |
| Publicado el 07,agosto 2020 - 12:25 |
Bonjour, J'ai requête paramétrée qui fonctionne parfaitement tant que je lui donne l'intégralité des paramètres. Seulement, je souhaite que les 2 paramètres IDCuve est IDProduit soit parfois ignoré pour récupérer l'intégralité des cuves ou des produits. Ceci ne fonctionne pas en passant les paramètres à Null ou à vide. J'obtiens l'erreur : Erreur d'initialisation de la requête. Mot ) inattendu. Erreur détectée ligne 31 : "AND Cuve.IDCuve IN (>>>>)<<<<"
SELECT Stock.IDStock AS IDStock, CONCAT(Cuve.CodeCuve , ' ',Produit.Libelle , ' ',Automate.Nom ) AS Cuve, Stock.Date AS DATE, Stock.Heure AS Heure, Produit.Libelle AS Produit, Stock.TypeMouvement AS TypeMouvement, Sum(CASE WHEN ( Stock.TypeMouvement = 1) THEN Stock.Quantite ELSE 0 END ) AS QuantiteEntree, Sum(CASE WHEN ( Stock.TypeMouvement = 2) THEN Stock.Quantite ELSE 0 END ) AS Quantitesortie, Stock.Prix AS Prix, Sum(CASE WHEN ( Stock.TypeMouvement = 1) THEN ( Stock.Quantite * Stock.Prix ) ELSE 0 END ) AS Montant, Stock.Observations AS Observations FROM ( ( Stock Left OUTER JOIN Cuve ON Stock.IDCuve = Cuve.IDCuve ) Left OUTER JOIN Produit ON Cuve.IDProduit = Produit.IDProduit ) Left OUTER JOIN Automate ON Cuve.IDAutomate = Automate.IDAutomate WHERE ( CONCAT(Stock.Date ,Stock.Heure ) BETWEEN {pdhDebut} AND {pdhFin} AND Cuve.IDCuve IN ({pIDCuve}) AND Produit.IDProduit = {pIDProduit} ) GROUP by Stock.IDStock, CONCAT(Cuve.CodeCuve , ' ',Produit.Libelle , ' ',Automate.Nom ) , Stock.Date, Stock.Heure, Produit.Libelle, Stock.TypeMouvement, Stock.Prix, Stock.Observations ORDER by Cuve Asc, DATE Asc, Heure Asc |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 7 mensajes |
|
| Publicado el 07,agosto 2020 - 16:32 |
Il est possible de passer une valeur non utilisée par défaut pour tout prendre (par exemple -1) et faire
AND (Cuve.IDCuve IN ({pIDCuve}) OR {pIDCuve}=-1)) |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.640 mensajes |
|
| Publicado el 07,agosto 2020 - 17:10 |
Hello,
Normalement, il suffit de ne pas initialiser du tout le paramètre pour qu'il soit omis. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 2.682 mensajes |
|
| Publicado el 07,agosto 2020 - 17:48 |
Si tu exécutes ta requête par HExecuteRequete il suffit de passer null omettre pour le paramètre.
Si tu exécutes ta requête par HExecuteRequeteSQL tu ne peux pas omettre le paramètre.
-- Cordialement,
Philippe SAINT-BERTIN |
| |
| |
| | | |
|
| | | | |
| | |
|