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

Hibernate Java Discussion :

order by sur un case when HQL


Sujet :

Hibernate Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut order by sur un case when HQL
    Bonjour, j'aimerai effectuer un order sur un case when (en rouge dans la requête)
    mais je n'arrive pas :s

    voici ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    
    SELECT  
    distinct op.opeNumOperation,
    trans.traRefTransaction,
    bc.bcoDatePrelevement,
    bc.bcoHeurePrelevement,
    client.cliNomClient,
    opeIop.glnClient,
    transLoc.stlNomSteLoc,
    opeIop.codeTournee,
    op.opeMt,
    loc.locNomLoc,
    op.opeId,
    bc.bcoIndPrelevementAvantOuvertureAtc,
    client.cliNumCpt,
    corres.corBicTarget,
    opeIop.glnStf,
    op,
    bc.bcoNatureMatiere,
    op.opeStatut,
    CASE 
    WHEN (opt.correspondantIopCtmf.coiId = opeIop.opiCtmf.coiId AND
    opt.correspondantIopClient.coiId = opeIop.opiClient.coiId AND opt.correspondantIopStf.coiId = opeIop.opiStv.coiId ) THEN 'Oui' ELSE 'Non' END,
    loc.locId,
    transLoc.stlId,
    deviseByDevIdMontant.devId,
    deviseByDevIdMontant.devCodeIsoDevise 
    
    
    FROM 
    
    BordereauCommande bc 
    join bc.operation op 
    join op.operationIOP opeIop 
    join opeIop.opiClient opeClientIop 
    join opeIop.opiStv opeStfIop 
    join opeIop.opiCtmf opeCtmfIop 
    join opeIop.opiTransaction trans 
    join op.evenementOperations evOp 
    join op.deviseByDevIdMontant deviseByDevIdMontant 
    left outer join op.localisationByLocIdStandard loc 
    left outer join op.clientByCliIdStandard client 
    left outer join op.steTransLoc transLoc 
    left outer join client.compteCorrespondants compteCorres 
    left outer join compteCorres.correspondant corres 
    left outer join opeCtmfIop.optionRegroupement opt 
    
    WHERE 
    op = op 
    AND op.opeCodeEntiteOe = :codeEC  
    AND bc.bcoEtatPreparation = :statutPreparation  
    AND op.opeStatut IN (:listeStatuts)
    Avez-vous une idée ?

    Merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    C'est bon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    SELECT  
    distinct op.opeNumOperation,
    trans.traRefTransaction,
    bc.bcoDatePrelevement,
    bc.bcoHeurePrelevement,
    client.cliNomClient,
    opeIop.glnClient,
    transLoc.stlNomSteLoc,
    opeIop.codeTournee,
    op.opeMt,
    loc.locNomLoc,
    op.opeId,
    bc.bcoIndPrelevementAvantOuvertureAtc,
    client.cliNumCpt,
    corres.corBicTarget,
    opeIop.glnStf,
    op,
    bc.bcoNatureMatiere,
    op.opeStatut,
    CASE 
    WHEN (opt.correspondantIopCtmf.coiId = opeIop.opiCtmf.coiId AND
    opt.correspondantIopClient.coiId = opeIop.opiClient.coiId AND opt.correspondantIopStf.coiId = opeIop.opiStv.coiId ) THEN 'Oui' ELSE 'Non' END,
    loc.locId,
    transLoc.stlId,
    deviseByDevIdMontant.devId,
    deviseByDevIdMontant.devCodeIsoDevise 
    
    
    FROM 
    
    BordereauCommande bc 
    join bc.operation op 
    join op.operationIOP opeIop 
    join opeIop.opiClient opeClientIop 
    join opeIop.opiStv opeStfIop 
    join opeIop.opiCtmf opeCtmfIop 
    join opeIop.opiTransaction trans 
    join op.evenementOperations evOp 
    join op.deviseByDevIdMontant deviseByDevIdMontant 
    left outer join op.localisationByLocIdStandard loc 
    left outer join op.clientByCliIdStandard client 
    left outer join op.steTransLoc transLoc 
    left outer join client.compteCorrespondants compteCorres 
    left outer join compteCorres.correspondant corres 
    left outer join opeCtmfIop.optionRegroupement opt 
    
    WHERE 
    op = op 
    AND op.opeCodeEntiteOe = :codeEC  
    AND bc.bcoEtatPreparation = :statutPreparation  
    AND op.opeStatut IN (:listeStatuts) 
    
    ORDER BY
    CASE 
    WHEN (opt.correspondantIopCtmf.coiId = opeIop.opiCtmf.coiId AND
    opt.correspondantIopClient.coiId = opeIop.opiClient.coiId AND opt.correspondantIopStf.coiId = opeIop.opiStv.coiId ) THEN 'Oui' ELSE 'Non' END DESC

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Par défaut
    on peut aussi mettre order by 19 (qui correspond au numéro de colonne)

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

Discussions similaires

  1. Count sur plusieurs case when
    Par fozzeuh dans le forum SQL
    Réponses: 5
    Dernier message: 15/05/2013, 11h01
  2. Problème sur Select Case When
    Par parilla77 dans le forum Langage SQL
    Réponses: 11
    Dernier message: 06/04/2012, 16h11
  3. Hibernate HQL : CASE WHEN THEN
    Par hisoft dans le forum Autres
    Réponses: 3
    Dernier message: 12/04/2011, 21h31
  4. erreur ORA 00905 : Mot clé absent sur un CASE WHEN
    Par gaijinma dans le forum PL/SQL
    Réponses: 2
    Dernier message: 01/07/2010, 14h32
  5. Equivalent "Select Case when then else end" sur Paradoxe
    Par Seuh.m dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/06/2006, 08h23

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