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 :

Filtre sur requête


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 71
    Par défaut Filtre sur requête
    Bonjour,

    j'ai un soucis avec une requête SQL :

    je veux afficher le résultat suivant :

    cas / segment 3-4 / segment 0-1-2
    '0_500' / 120 / 360
    '500_1000' / 162 / 400
    '1000_1500' / 300 / 250
    '1500_2000' / 530 / 95
    .
    .
    .


    pour cela J4ai crée un with dans le quel je met tout les segment (0-1-2-3-4)

    puis en dehors du with , je fait la sélection .
    voici mon code :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    with aa as (
    SELECT code_SEGMENT,count(*) sss,
    case when MNT        >0 AND MNT_REVENU<=500 then  '0_500'
          when MNT >500 AND MNT_REVENU<=1000 then   '500_1000'
         when MNT >1000 AND MNT_REVENU<=1500 then  '1000_1500' 
         when MNT >1500 AND MNT_REVENU<=2000  then '1500_2000'
         when MNT >2000 AND MNT_REVENU<=3000 then  '2000_3000'
           when MNT >3000 AND MNT_REVENU<=4000 then  '3000_4000'
          when MNT >4000 AND MNT_REVENU<=5000 then  '4000_5000'
          when MNT >5000 AND MNT_REVENU<=7000   then  '5000_7000'
         when MNT >7000 AND MNT_REVENU<=10000 then  '7000_10000'
        when MNT >10000  then  'superieur_10000'
         end cas 
     
    FROM D_revenue p
     
    where COD_SEGMENT in (0,1,2,3,4)
    group by CODe_SEGMENT,
     
    case when MNT        >0 AND MNT_REVENU<=500 then  '0_500'
          when MNT >500 AND MNT_REVENU<=1000 then   '500_1000'
         when MNT >1000 AND MNT_REVENU<=1500 then  '1000_1500' 
         when MNT >1500 AND MNT_REVENU<=2000  then '1500_2000'
         when MNT >2000 AND MNT_REVENU<=3000 then  '2000_3000'
           when MNT >3000 AND MNT_REVENU<=4000 then  '3000_4000'
          when MNT >4000 AND MNT_REVENU<=5000 then  '4000_5000'
          when MNT >5000 AND MNT_REVENU<=7000   then  '5000_7000'
         when MNT >7000 AND MNT_REVENU<=10000 then  '7000_10000'
        when MNT >10000  then  'superieur_10000'
         end 
     
    )
    select cas,
     
    (select sum(sss)  from aa where CODe_SEGMENT in (3,4) group by cas) as 'segment_3-4',
    (select sum(sss) from aa where CODe_SEGMENT in (0,1,2) group by cas) as 'segment_0_1_2'
     
     
    from aa
    pouvez vous m'aider svp ?

    merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 005
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 005
    Par défaut
    Et quel est le pb?

    Tu as un message d'erreur ou bien le résultat de ta requête n'est pas bon?

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 71
    Par défaut
    erreur :
    ORA-01427: sous-requête ramenant un enregistrement de plus d'une ligne
    01427. 00000 - "single-row subquery returns more than one row"
    *Cause:
    *Action:

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 136
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 136
    Par défaut
    Le message d'erreur est clair : chacune des sous-requête retourne autant de lignes qu'il y a de cas alors qu'une seule ligne est attendue par la requête.
    Est-ce que cette requête ne serait pas plus adaptée ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select  CAS
        ,   sum(case when CODE_SEGMENT in (3,4)   then sss end) as 'segment_3-4'
        ,   sum(case when CODE_SEGMENT in (0,1,2) then sss end) as 'segment_0_1_2'
    from    AA
    group by CAS
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. [AC-2016] Filtre sur requête
    Par mathpac dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 05/01/2018, 09h55
  2. Filtre sur requête MDX
    Par rapido dans le forum SSAS
    Réponses: 3
    Dernier message: 07/12/2012, 12h42
  3. [AC-2007] Multi-filtre sur requête
    Par maximilien59 dans le forum Modélisation
    Réponses: 5
    Dernier message: 31/01/2012, 08h45
  4. [AC-2003] Sélection d'état à partir d'un filtre sur requête
    Par Arro2a dans le forum VBA Access
    Réponses: 2
    Dernier message: 21/03/2011, 17h44
  5. Requête filtre sur des rendez vous
    Par jdotti dans le forum Outils
    Réponses: 5
    Dernier message: 17/03/2006, 15h41

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