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

HyperFileSQL Discussion :

Sql CASE/WHEN avec HyperFile


Sujet :

HyperFileSQL

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Sql CASE/WHEN avec HyperFile
    Quel est l'equivalent du sql "Case ... When ...." ou "IIF ..." d'access en Windev?
    Ou un autre méthode pour realiser ces conditions avec windev?

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    CASE >> SELON

    IIF > (Cond) ? valeursivrai SINON valeursifaux

    L'appuie de la touche F1 et un peu de recherche aide beaucoup, souvent !

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoup kwasin et désolé j'étais pas très explicite la dessus.

    Dans le W-language c'est bien "SELON" l'equivalent de "CASE" mais mon
    problème est dans le language SQL de windev où "CASE" ou "IIF" dans une condition d'une requête que je ne sais plus quoi faire.

    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Article.code as code,
               Article.nom  as nom, 
               CASE Article.disponible WHEN 0 THEN 'Liquidé' ELSE 'Disponible' as D1
    From Article
    C'est un exemple mais ma requete est plus complexe.

    Merci beaucoup de m'aider

  4. #4
    Membre actif Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Points : 273
    Points
    273
    Par défaut
    Pour ma part, quand j'ai ce genre de requête, je la passe en hRequeteSansCorrection avec HExecuteRequeteSql(). Ca marche impeccable.

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Désolé d'être à coté de la plaque

    Je n'utilise pas le SQL Windev, donc je ne peux pas t'aider

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 20
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par iniaina Voir le message
    ...

    Dans le W-language c'est bien "SELON" l'equivalent de "CASE" mais mon
    problème est dans le language SQL de windev où "CASE" ou "IIF" dans une condition d'une requête que je ne sais plus quoi faire.

    ...

    Bonjour,

    la solution dépend peut-être de la version de Windev (toujours indiquer dans le sujet). Depuis WD11 et plus particulièrement WD12 certaines fonctions d'autres dialects SQL sont supportées. L'aide devrait lister cela sous SQL.
    Avant WD11, ça n'existe pas à ma connaissance. Dans ce cas, je vois deux possibilités pour contourner:
    1) une requête UNION
    2) une rubrique "calculé" comme p.ex. Répète(" ", 10) AS D1, et après l'exécution de la requete une boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    POUR TOUS maRequete
      Si maRequete.Disponible = 0 ALORS
         maRequete.D1 = "Liquidé"
      SINON
         maRequete.D1 = "Disponible"
      FIN
      hModifie(maRequete)
    FIN
    La 2e solution a l'air ridicule mais heureusement elle est efficace et à ma connaissance souvent la seule manière d'obtenir des formats particuliers dans le résultat d'une requete Windev / HF.

    Salutations
    Mat

Discussions similaires

  1. Utilisation CASE WHEN avec une liste de valeurs
    Par mortimer.pw dans le forum PL/SQL
    Réponses: 5
    Dernier message: 26/03/2009, 12h50
  2. SQL Case When
    Par mechatikhaled dans le forum Bases de données
    Réponses: 5
    Dernier message: 18/01/2009, 16h57
  3. CASE WHEN avec un comportement anormal
    Par damien.sans dans le forum Oracle
    Réponses: 5
    Dernier message: 23/08/2006, 10h03
  4. Transact SQL : case when
    Par dianouch dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 21/07/2006, 12h12
  5. case/when avec plusieurs valeurs pour le then
    Par Neo41 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2005, 15h58

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