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 :

Requête - Problème de comptage


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut Requête - Problème de comptage
    Bonjour,

    J'ai la requête suivante sous Oracle que je voudrais simplifier :

    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
     
    select distinct c.c_client as "Code", c.l_client as "Libellé", 
    case f.indi_pur_adm
    when 'P' then 'PUR'
    when 'A' then 'ADMINISTRE'
    end,
    case
    when f.indi_resident = 'R' then 'Résident'  
    when f.indi_resident = 'N' then 'Non Résident' 
    end,
    count(f.acti_iden) as Volume, 
    '01/01/2009' as "Date de début", 
    '31/03/2009' as "Date de fin"
    from fac_reg_soldes f, client c
    where c.c_id_client = f.c_id_client
    and f.c_id_client = 861
    and (f.vale_natu = 'ACTION' or f.vale_natu = 'BON' or f.vale_natu = 'OBLIGATION')
    and f.soaa_date between to_date('01/01/2009', 'dd/mm/yyyy') and to_date('31/03/2009', 'dd/mm/yyyy')
    and f.indi_pur_adm = 'P'
    and indi_issu_paga = 'N'
    and indi_issu_so = 'N'
    and f.soaa_quan <> 0 
    group by c.c_client, c.l_client, f.INDI_PUR_ADM, f.soaa_date, f.indi_resident
    Cette requête me ramanène le résultat suivant :

    Code Libellé Détention Résident Volume Date de début Date de fin
    12 Société PUR Résident 2 01/01/2009 31/03/2009
    12 Société PUR Résident 1 01/01/2009 31/03/2009

    Voilà en fait je voudrais faire en plus une somme de la colonne Volume donc n'avoir qu'une ligne :
    12 Société PUR Résident 3 01/01/2009 31/03/2009

    Merci par avance pour votre retour.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut
    Que pensez-vous de la requête suivante, en changeant l'emplacement du DISTINCT ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select c.c_client , c.l_client, count(distinct f.acti_iden) as Volume, f.indi_pur_adm, f.indi_resident,
    '01/01/2009' as "Date de début", 
    '31/03/2009' as "Date de fin"
    from fac_reg_soldes f, client c
    where c.c_id_client = 861
    and f.c_id_client = c.c_id_client
    and f.soaa_quan <> 0 and (f.vale_natu = 'ACTION' or f.vale_natu = 'BON' or f.vale_natu = 'OBLIGATION')
    and f.soaa_date between to_date('01/01/2009', 'dd/mm/yyyy') and to_date('31/03/2009', 'dd/mm/yyyy')
    and f.indi_pur_adm = 'P' and indi_issu_paga = 'N' and indi_issu_so = 'N'
    group by c.c_client, c.l_client, f.indi_pur_adm, f.indi_resident
    Merci d'avance pour votre retour.

  3. #3
    Membre éprouvé
    Inscrit en
    Septembre 2008
    Messages
    101
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 101
    Par défaut
    Bonjour,

    Merci de fournir un jeu de données.

    Sinon, la modification sur le distinct a sûrement moins d'importance que la suppression du "f.soaa_date" dans le Group By

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut
    Oui en effet en rajoutant la date dans le select et le group by j'ai 4 lignes .
    Mais je n'ai pas besoin de la date dans le select mais uniquement d'une période de recherche dans la clause WHERE.

    Voilà si vous croyez que cela n'est pas cohérent merci de me le dire.

  5. #5
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    Garde la même requête et pour le group by mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GROUP BY c.c_client, c.l_client, f.INDI_PUR_ADM, f.indi_resident
    comme proposé par spdev666

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 560
    Par défaut
    OK donc la requête du message #2 est correcte....

  7. #7
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    Oui vous aviez bien trouvé. Merci de marquer la discussion en résolu.

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

Discussions similaires

  1. [MySql] Problème de comptage
    Par Oberown dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/02/2006, 05h44
  2. [Requête] Problème avec Distinct
    Par Gamleur84 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 04/02/2006, 01h40
  3. [Requête] Problème INSERT INTO
    Par lerico dans le forum Requêtes et SQL.
    Réponses: 22
    Dernier message: 10/01/2006, 17h12
  4. [Requête]Problème de moyenne
    Par Angath dans le forum Langage SQL
    Réponses: 7
    Dernier message: 05/10/2005, 23h58
  5. [Requête] Problème avec fonction "DATE_FORMAT()"
    Par sekiryou dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/01/2005, 21h52

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