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

SQL Oracle Discussion :

Erreur dans le code


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Par défaut Erreur dans le code
    Bonjour, j'ai un probleme avec une query. moi je voudrais faire un calcul des record où l'age des personnes est entre 40 et 44 ans... j'ai fais cette query mais il y a un erreur... pourkoi?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select if ((( floor((sysdate - r.DATA_NASC)/365))  between '40' and  '44'), count(*),0) , r.SEX
    from sdo r
    where r.diag_prin = '400'

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    on doit la deviner l'erreur ?

    La syntaxe est complétement fausse. Lis les tutos sur le SQL pour plus d'infos.

  3. #3
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Par défaut
    il me dit qu'il manque une paranthese au niveau de between

    Citation Envoyé par orafrance Voir le message
    on doit la deviner l'erreur ?

    La syntaxe est complétement fausse. Lis les tutos sur le SQL pour plus d'infos.

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Sans vouloir donner la solution complète, essaie de constuire ta requête de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT r.SEX, count(*)
    FROM sdo r
    WHERE r.diag_prin = '400'
    AND -- condition d'âge entre 40 et 44 ans
    Group by r.SEX
    Pour ta condition sur l'âge le plus propre serait d'utiliser les intervalles.

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Par défaut
    je connait cette construction, mais le probleme est que j'ai plusieur condition parce que je voudrais subdiviser les données en classe. donc avec un if(...) c'est plus rapide.

    Citation Envoyé par Waldar Voir le message
    Sans vouloir donner la solution complète, essaie de constuire ta requête de la forme suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT r.SEX, count(*)
    FROM sdo r
    WHERE r.diag_prin = '400'
    AND -- condition d'âge entre 40 et 44 ans
    Group by r.SEX
    Pour ta condition sur l'âge le plus propre serait d'utiliser les intervalles.

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    IF n'est pas une commande SQL

    Regarde DECODE ou CASE (SQL !)

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Citation Envoyé par Daniela Voir le message
    je connait cette construction, mais le probleme est que j'ai plusieur condition parce que je voudrais subdiviser les données en classe. donc avec un if(...) c'est plus rapide.
    N'hésitez pas à expliquer plus votre besoin alors, effectivement les requêtes s'écrivent en fonction des résultats attendus !

Discussions similaires

  1. [vb.net] erreur dans un code
    Par lou87 dans le forum Windows Forms
    Réponses: 36
    Dernier message: 24/04/2006, 10h56
  2. erreur dans mon code
    Par sacco dans le forum C
    Réponses: 4
    Dernier message: 14/04/2006, 11h50
  3. [VBA][Débutant][export]erreurs dans mon code?
    Par Christophe93250 dans le forum Access
    Réponses: 4
    Dernier message: 06/01/2006, 19h52
  4. Erreur dans du code
    Par claralavraie dans le forum ASP
    Réponses: 4
    Dernier message: 23/12/2005, 09h32
  5. [VBA] Erreur dans un code. Hierarchie DAO.
    Par snoopy69 dans le forum VBA Access
    Réponses: 3
    Dernier message: 22/10/2005, 22h28

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