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 :

[Oracle 10] Group by utilisation


Sujet :

Langage SQL

  1. #1
    Membre régulier

    Inscrit en
    Septembre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 99
    Points : 118
    Points
    118
    Par défaut [Oracle 10] Group by utilisation
    bonjour,

    J'ai une requete de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    select 	case when  numero_partenaire = 12 then 'chez nous'
    	     when numero_partenaire != 12 then 'pas chez nous'
                 end as Entreprise
    	,nom_marque
    	,count(vehicule)		
    from    ...
    where 	...
    group by nom_marque
                ,case when numero_partenaire = 12 then 'chez nous'
    	          when numero_partenaire != 12 then 'pas chez nous'
                 end
    J'aimerai eviter de repeter dans le group by le "case .. end"
    QUESTION :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Est t'il possible de donner le numero de la colonne dans le group by?? (par exemple cols["1"] )
    Informations
    Merci d'avance

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 099
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    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 099
    Points : 28 400
    Points
    28 400
    Par défaut
    Je ne connais pas spécifiquement Oracle mais dans ton cas tu dois pouvoir utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    group by    nom_marque
            ,   entreprise
    ou

  3. #3
    Membre régulier

    Inscrit en
    Septembre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 99
    Points : 118
    Points
    118
    Par défaut
    plop,

    On peut pas utiliser d'alias dans le group by et l'autre solution ne marche pas.
    :/

  4. #4
    Membre régulier

    Inscrit en
    Septembre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 99
    Points : 118
    Points
    118
    Par défaut possible?
    plop,

    Si quelqu'un pouvait me dire si ce que je cherche à faire est possible ou pas ?

    Si quelqu'un à un lien sur la norme concernant "group by" sous oracle je suis prenneur aussi.

    merci d'avance.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14
    Points : 18
    Points
    18
    Par défaut
    A ce que je sais, les requêtes sont lues à l'envers par le système. Ce qui explique que le 'case' soit obligatoire dans le group by puisque 'entreprise' n'est pas encore connu à ce moment là.

    Un bon lien group by oracle -> http://otn.oracle.com

    Donc à part quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select numero_partenaire,
    case when  numero_partenaire = 12 then 'chez nous' 
    when numero_partenaire != 12 then 'pas chez nous' end as Entreprise ,nom_marque ,count(vehicule) 
    from ... 
    where  ... 
    group by nom_marque ,numero_partenaire
    mais qui va pas aider s'il y a plusieurs codes partenaire...peut-être une piste...faut voir la finalité de la requête.

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2006
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 40
    Points : 43
    Points
    43
    Par défaut
    Si je me rappelle bien la syntaxe le "group by 1, 2" était possible avant la V8.
    Depuis non.

  7. #7
    Membre régulier

    Inscrit en
    Septembre 2005
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 99
    Points : 118
    Points
    118
    Par défaut snif
    Merci pour les informations. ^_^

    je vais devoir laisser la requete comme ca on dirait :/ tanpis pour moi.

Discussions similaires

  1. [Oracle 8i - PL/SQL] Utilisation des exceptions
    Par Bahan dans le forum Oracle
    Réponses: 3
    Dernier message: 28/08/2006, 16h24
  2. [Oracle Reports]Installation et utilisation
    Par widadja dans le forum Reports
    Réponses: 1
    Dernier message: 20/07/2006, 08h39
  3. [Oracle 9.2] requête utilisant la mesure précédente
    Par magic charly dans le forum Langage SQL
    Réponses: 16
    Dernier message: 11/05/2006, 16h21
  4. [Oracle 9i] GROUP BY avec jointure.
    Par requinc dans le forum Langage SQL
    Réponses: 3
    Dernier message: 27/04/2006, 12h29
  5. [Oracle 8]Group by d'Oracle !!
    Par Wormus dans le forum Oracle
    Réponses: 13
    Dernier message: 10/02/2006, 10h03

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