Bonjour,
Tout d'abord le contexte :
tMsgBox_1 ----> tInterbaseInput_1 ----> tInterbasRow_1 ----> tParseRecordSet_1 ----> tMap_1 ----> tFileOuputExcel_1
Dans tInterbaseInput_1, j'ai une requête du type :
SELECT ID, LIB, AID, TID, CID, QTE FROM TABLE1 WHERE M = :((String) globalMap.get("tMsgBox_1_RESULT"))
Dans tInterbaseRow_1, j'ai une requête du type :
SELECT E FROM TABLE2 WHERE A = :AID AND T = :TID AND C = :CID
J'aurais pu intégrer cette requête en sous-requête dans tInterbaseInput_1, mais je veux l'éviter...
Ce job fonctionne très bien en l'état pour la très grande majorité des cas où TID et CID sont différents de 0, mais je voudrais modifier le traitement tInterbaseRow_1 pour qu'il prenne en compte quelques cas particuliers, c.a.d. quand TID=0 ou CID=0.
La requête s'appliquant dans ce cas est plus simple :
SELECT E FROM TABLE2 WHERE A = :AID
J'ai pensé à construire une clause where combinant les cas possibles qui ressemblerait à
SELECT E FROM TABLE2 WHERE A = :AID OR (A = :AID AND T = :TID AND T <>0 AND C = :CID AND C <> 0)
Mais y a-t-il une autre manière de faire :
- en construisant la requête sql à la volée suivant un des 2 cas rencontrés ?
- en introduisant un 2° composant tInterbaseRow_2 et un branchement conditionnel fonction de la valeur des colonnes et un regroupement juste après (si c'est possible ?)
- autre ?
Partager