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

Langage SQL Discussion :

comment afficher même une ligne qui ne vérifis pas une condition


Sujet :

Langage SQL

  1. #1
    Membre habitué Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Points : 127
    Points
    127
    Par défaut comment afficher même une ligne qui ne vérifis pas une condition
    Bonjour, voici la requête :
    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
    SELECT COUNTRY.NATIONALITY, COUNT(STUDENT.ID) EFFECTIF
    FROM INSCRIPTION, STUDENT, YEAR, CLAS, CLASS_TYPE, ENTITIES,COUNTRY
    WHERE INSCRIPTION.STUDENT_ID = STUDENT.ID
    AND INSCRIPTION.YEAR_ID = YEAR.ID
    AND YEAR.YEAR_CURRENT = 1
    AND INSCRIPTION.CLAS_ID = CLAS.ID
    AND INSCRIPTION.STATUS = 'V'
    AND CLAS.YEAR_ID = YEAR.ID
    AND STUDENT.CODE LIKE '2008%'
    AND CLAS.CLASS_TYPE_ID = CLASS_TYPE.ID
    AND CLAS.ENTITY_ID = ENTITIES.ID
    AND ENTITIES.ID = 5
    AND STUDENT.COUNTRY_CODE = COUNTRY.CODE
    GROUP BY COUNTRY.NATIONALITY
    ORDER BY COUNTRY.NATIONALITY
    En fait, pour la condition STUDENT.CODE LIKE '2008%' restreindra EFFECTIF que pour les étudiants nouveaux or j'aimerai afficher zéro pour les étudiants de nationalités ne vérifiant pas cette condition. Que faire? Merci de m'aider
    La vie n'est qu'une suite de tests...(pas unitaires )

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Utilisez un branchement CASE !

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre habitué Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par Chtulus Voir le message
    Bonjour,

    Utilisez un branchement CASE !

    Est ce que c'est compatible avec Oracle 8.0.5? J'ai vu que non...Je ne peux changer la version du SGBD car la base est presque toujours sollicitée et que déja nous migrerons vers un ERP sous SQL Server
    La vie n'est qu'une suite de tests...(pas unitaires )

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    D'ou l'intérêt de préciser le SGBDR...

    La fonction DECODE() n'arrangerait pas ça !

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Salut,

    En 8.0 tu as quand même DECODE il me semble.

    [EDIT]grilled!

  6. #6
    Membre habitué Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Points : 127
    Points
    127
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    Salut,

    En 8.0 tu as quand même DECODE il me semble.

    [EDIT]grilled!
    DECODE() ne peut pas jouer sur une condition je veux dire

    DECODE(matricule like '2008%', ...) ne sera pas possible..à moin que j'ai oublié quelque chose...
    La vie n'est qu'une suite de tests...(pas unitaires )

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    ok j'avais pas bien lu ton post, peut être ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    decode(substr(matricule,1,4),2008,...,...)

  8. #8
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut syntaxe de la fonction decode de oracle
    tout le monde

    decode(val,val1,val2,
    val3,val4,
    val5,val6,
    ....,.....,
    val(n),val(n+1),
    val(m))


    veut dire que
    si val=val1 alors val2
    or
    si val=val3 alors val4
    or
    si val=val5 alors val6
    or
    ..........................
    si val=val(n) alors val(n+1)
    sinon
    val(m)
    d'avoir Pensé à voter positivement pour ceux qui vous ont aidés et surtout à mettre si le cas.
    ça encourage.

  9. #9
    Membre habitué Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Points : 127
    Points
    127
    Par défaut
    Merci les amis pour vos réponses...je suis vraiment un peu accablé par la version actuel d'Oracle...mais heureusement nous migrerons vers un autre SGBD...
    La vie n'est qu'une suite de tests...(pas unitaires )

Discussions similaires

  1. Réponses: 8
    Dernier message: 07/12/2014, 00h02
  2. Réponses: 6
    Dernier message: 10/11/2009, 11h58
  3. Réponses: 8
    Dernier message: 07/06/2009, 20h31
  4. Réponses: 14
    Dernier message: 14/11/2008, 10h16
  5. Réponses: 6
    Dernier message: 22/09/2008, 14h52

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