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 :

problème avec 1 goup by et 1 substr


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de pascal_T
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 95
    Par défaut problème avec 1 goup by et 1 substr
    Bonjour à tous, j'ai 1 sélection à faire et je vois pas pourquoi la requête que j'ai mise en place génère le message suivant "n'est pas une expression group by".

    voici la requête :

    select substr(rub.cod_rub,1,3)||'C_A' RUB,
    (select rub.lib_rub from rubriq r1 where r1.cod_rub = substr(rub.cod_rub,1,3)||'C') LIB_RUB ,
    count (*)
    from rubriq rub
    where rub.cod_rub like '8%C' or rub.cod_rub like '8%A'
    group by substr(rub.cod_rub,1,3),lib_rub;

    ==> la table contiend des lignes avec cod_rub du type 805A et 805C ainsi qu'un libellé LIB_RUB. je ne souhaite afficher que le libellé de la version en C.

    Si quelqu'un a 1 idée.

  2. #2
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Citation Envoyé par pascal_T Voir le message
    Bonjour à tous, j'ai 1 sélection à faire et je vois pas pourquoi la requête que j'ai mise en place génère le message suivant "n'est pas une expression group by".

    voici la requête :

    select substr(rub.cod_rub,1,3)||'C_A' RUB,
    (select rub.lib_rub from rubriq r1 where r1.cod_rub = substr(rub.cod_rub,1,3)||'C') LIB_RUB ,
    count (*)
    from rubriq rub
    where rub.cod_rub like '8%C' or rub.cod_rub like '8%A'
    group by substr(rub.cod_rub,1,3),lib_rub;

    ==> la table contiend des lignes avec cod_rub du type 805A et 805C ainsi qu'un libellé LIB_RUB. je ne souhaite afficher que le libellé de la version en C.

    Si quelqu'un a 1 idée.
    essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select substr(rub.cod_rub,1,3)||'C_A' RUB,
    (select rub.lib_rub from rubriq r1 where r1.cod_rub = substr(rub.cod_rub,1,3)||'C') LIB_RUB ,
    count (*)
    from rubriq rub
    where rub.cod_rub like '8%C' or rub.cod_rub like '8%A'
    group by select substr(rub.cod_rub,1,3)||'C_A' RUB,
    (select rub.lib_rub from rubriq r1 where r1.cod_rub = substr(rub.cod_rub,1,3)||'C')
    Ton 2ieme champ n(LIB_RUB)'est pas pas présent dans le groupe by alors qu'il devrait.

  3. #3
    Membre confirmé Avatar de pascal_T
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 95
    Par défaut
    Merci de ton aide mais malheureusement il me met qu'il y a une expression abscente au niveau du premier select du group by. et si je ne mets que
    "substr(rub.cod_rub,1,3)||'C_A" alors il me met: "expression de sous-interrogation non autorisée ici" au niveau de
    "SELECT rub.lib_rub FROM rubriq r1 WHERE r1.cod_rub = substr(rub.cod_rub,1,3)||'C')"

  4. #4
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Citation Envoyé par pascal_T Voir le message
    Merci de ton aide mais malheureusement il me met qu'il y a une expression abscente au niveau du premier select du group by.
    => c'est bien ce que je te dis , il manque ton deuxieme champ

    et si je ne mets que
    "substr(rub.cod_rub,1,3)||'C_A" alors il me met: "expression de sous-interrogation non autorisée ici" au niveau de
    "SELECT rub.lib_rub FROM rubriq r1 WHERE r1.cod_rub = substr(rub.cod_rub,1,3)||'C')"

    En même temps je trouve étrange que tu fasse un select dans la clause select ..
    ce n'est pas ca ce que tu veux faire des fois ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select 
    substr(rub.cod_rub,1,3)||'C_A' as RUB,
     rub.lib_rub as LIB_RUB ,
    count (*)
    from rubriq rub, rubriq r1
    where 
    (rub.cod_rub like '8%C' or rub.cod_rub like '8%A') and 
    r1.cod_rub = substr(rub.cod_rub,1,3)||'C')
    group by substr(rub.cod_rub,1,3),rub.lib_rub

  5. #5
    Membre confirmé Avatar de pascal_T
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 95
    Par défaut
    Non, car le champ lib_rub varie en fonction de la version de cod_rub, et je souhaite n'afficher que le lib_rub associé au cod_rub du type '8%C'.

    C'est ce champ qui me met le bazard.

  6. #6
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    Citation Envoyé par pascal_T Voir le message
    Non, car le champ lib_rub varie en fonction de la version de cod_rub, et je souhaite n'afficher que le lib_rub associé au cod_rub du type '8%C'.

    C'est ce champ qui me met le bazard.
    Ma requete correspond a ce que tu decris je crois ...
    tu peux nous donner un exemple de données et les résultats que tu voudrais avoir ?

  7. #7
    Expert confirmé 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
    Par défaut
    Je ne suis pas certain mais probablement que tu veut faire ça
    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
     
    Select Rub, Lib_Rub, Count(*)
      From (
            Select substr(rub.cod_rub,1,3)||'C_A' RUB,
                   (Select r1.lib_rub 
                      From rubriq r1 
                     Where r1.cod_rub = rub.cod_rub 
                       And r1.cod_rub Like '%C') Lib_Rub
             From rubriq rub
            Where rub.cod_rub like '8%C' or rub.cod_rub like '8%A'
    )
    Group By rub, lib_rub
     
    RUB    LIB_RUB    COUNT(*)
    ------ -------- ----------
    805C_A                   1
    805C_A Lib 805C          1

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

Discussions similaires

  1. problème avec substr
    Par bills dans le forum SL & STL
    Réponses: 4
    Dernier message: 01/02/2008, 09h49
  2. [XSLT]problème avec substring et when
    Par fabnet dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/10/2007, 07h28
  3. problème avec substring
    Par trotters213 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 06/10/2006, 15h39
  4. problème avec substring
    Par LE NEINDRE dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/10/2005, 13h47
  5. Problème avec un substring
    Par yoda_style dans le forum ASP
    Réponses: 4
    Dernier message: 20/04/2004, 11h29

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