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 :

SELECT & COUNT


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Points : 21
    Points
    21
    Par défaut SELECT & COUNT
    Bonjour,

    j'ai une table du type:
    _______________________________________
    | id | date_d_ouverture | date_de_fermeture |
    _______________________________________
    | 1 | 25/04/2010 | (null) |
    | 2 | 25/04/2010 | 25/04/2010 |
    | 3 | 30/04/2010 | (null) |
    | 4 | 01/05/2010 | (null) |
    | 5 | 02/05/2010 | 03/05/2010 |
    | 6 | 04/05/2010 | 10/05/2010 |
    _______________________________________

    Et j'aimerais donc avoir une requête capable de me sortir pour chaque mois le total d'éléments ouverts, fermés et total
    En fait, comment peut-on introduire une sorte de clause à l'intérieur d'un count ??
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT
      to_char(date_d_ouverture, 'MONTH') AS month_raised,
      to_char(date_d_ouverture, 'yyyy') AS year_raised,
      COUNT(id WHERE date_de_fermeture IS NULL) AS nb_ouvert,
      COUNT(id WHERE date_de_fermeture IS NOT NULL) AS nb_ferme,
      COUNT(id) AS nb
    from ma_table
    group by to_char(date_d_ouverture, 'MONTH'), to_char(date_d_ouverture, 'yyyy')
    order by year_raised, month_raised

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Utilisez Case

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Points : 21
    Points
    21
    Par défaut Developpez...
    En réponse aux longs discours de mnitu je vais compléter ses pensées:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select to_char(date_d_ouverture, 'MONTH', 'NLS_DATE_LANGUAGE = English') as month_raised, to_char(date_d_ouverture, 'yyyy') as year_raised,
    count(case when date_de_fermeture is null then 1 else null end),
    count(case when date_de_fermeture is NOT null then 1 else null end),
    count(*)
    FROM ma_table
    where ma_condition
    GROUP BY to_char(date_d_ouverture, 'MONTH', 'NLS_DATE_LANGUAGE = English'), to_char(date_d_ouverture, 'yyyy')
    Merci mnitu

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Oui c'est ça, sauf que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count(case when date_de_fermeture IS NOT NULL...
    c'est la même chose que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count(date_de_fermeture)

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    En poursuivant la remarque de mnitu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count(case when date_de_fermeture IS NULL...)
    C'est la même chose que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count(*) - count(date_de_fermeture)

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

Discussions similaires

  1. Sous select et count(*)
    Par JPDOM dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 15/11/2007, 18h04
  2. [SQL Server] alternative au SELECT MAX( COUNT(*) )
    Par xtotoro dans le forum Langage SQL
    Réponses: 11
    Dernier message: 24/05/2007, 13h57
  3. Select 2 COUNT BETWEEN 2 Date
    Par aliwassem dans le forum Langage SQL
    Réponses: 34
    Dernier message: 26/01/2007, 00h17
  4. [MySQL] SELECT données + COUNT
    Par Girzi dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 29/06/2006, 11h57
  5. Update, select et count
    Par dbuweb dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2006, 16h11

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