IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement de jobs Discussion :

Clause where conditionnelle


Sujet :

Développement de jobs

  1. #1
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut Clause where conditionnelle
    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 :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT E FROM TABLE2 WHERE A = :AID
    J'ai pensé à construire une clause where combinant les cas possibles qui ressemblerait à
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    1. en construisant la requête sql à la volée suivant un des 2 cas rencontrés ?
    2. 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 ?)
    3. autre ?
    Philippe.

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour
    J'ai opté pour la requête avec la clause where modifiée... même si je ne trouve pas cette solution très élégante...
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT E FROM TABLE2 WHERE A = :AID OR (A = :AID AND T = :TID AND T <>0 AND C = :CID AND C <> 0)
    Philippe.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Clause where conditionnelle
    Par Zenji dans le forum iReport
    Réponses: 2
    Dernier message: 17/11/2010, 15h33
  2. structure conditionnelle dans la clause where
    Par liberty74 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 31/05/2007, 23h18
  3. Problème clause WHERE
    Par nesbla dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/06/2004, 15h07
  4. probleme avec le caractere 'Z' dans ma clause WHERE
    Par dibox dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/04/2004, 12h21
  5. [ character en simple cote ] clause Where
    Par hocinema dans le forum DB2
    Réponses: 3
    Dernier message: 20/02/2004, 10h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo