Discussion: Création de vue

  1. #1
    Membre du Club
    Profil pro
    informatique
    Inscrit en
    novembre 2009
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : informatique

    Informations forums :
    Inscription : novembre 2009
    Messages : 167
    Points : 59
    Points
    59

    Par défaut Création de vue

    Bonjour a tous , je cherche a crée une vue avec mes tables source que voici:
    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
    SQL> desc course ;
     Name					   Null?    Type
     ----------------------------------------- -------- ----------------------------
     NUMC					   NOT NULL NUMBER(10)
     NOMC					   NOT NULL CHAR(40)
     DATEC						    DATE
     NUMV						    NUMBER(38)
     PRIX						    FLOAT(63)
     
    SQL> desc resulat ;
     Name					   Null?    Type
     ----------------------------------------- -------- ----------------------------
     NUMC					   NOT NULL NUMBER(10)
     NUMA					   NOT NULL NUMBER(38)// numero athlete
     RANG						    NUMBER(38)
    ma vue doit comporter les attribut suivant:
    numa,numv, datec,nbParticipant

    voici la requete que j'ai ecrit mais qui ne marche malheureusement pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create materialized view v(nomAthlete,nomVille,iddate,nbParticipant)
     build immediate
     refresh on commit
     as select noma,numv,datec, sum(r.numa) from  course c,resulat r, athlete a  where c.numc=r.numc and a.numa=r.numa ;
    voici l'erreur que j'obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ERROR at line 1:
    ORA-00937: not a single-group group function
    si quelqu'un a une idée du probleme

    remarque: nbparticipant: est le nombre d'athlete ayant participé a une course

  2. #2
    Membre habitué
    Inscrit en
    septembre 2010
    Messages
    74
    Détails du profil
    Informations forums :
    Inscription : septembre 2010
    Messages : 74
    Points : 131
    Points
    131

    Par défaut

    Salut toi,

    Déjà pour commencer ton problème n'a rien à voir avec la création d'une vue. Ton problème est un problème de requête. Tu n'arrives pas à écrire la requête qui te permettra de créer ta vue. Donc, avant d'essayer de créer ta vue, essaye de créer la requête qui définiera ta mview.

    Ensuite, essaie de poster tes CREATE TABLE et un petit set de données pour que nous puissions tester. Dans ta requête, tu fais mention de la table athlete alors que nulle part nous voyons sa structure. Aussi, dans ton select tu as NOMA, mais je ne vois pas de quel table ce champ vient.

    Si tu veux compter le nombre de participant, je ne comprend pas pourquoi tu fais un SUM. La fonction pour compter est logiquement COUNT().

    Le message d'erreur est très clair. Tu n'as pas de GROUP BY dans ta requête. Si tu veux compter les éléments d'un groupe (en l'occurence une course), tu dois définir ce "groupe". Pour les JOINtures, la syntaxe ANSI est plus "jolie" et plus lisible... Peut-être la requête suivante t'aidera??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT r.noma, c.numv, c.datec, COUNT(r.numa)
      FROM course c 
     INNER JOIN resultat r ON r.numc = c.numc 
     INNER JOIN athlete a ON a.numa = r.numa
    GROUP BY r.noma, c.numv, c.datec
    ;

    Bon week-end,

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

Discussions similaires

  1. [UNIX][Optimisation] sur création de Vue
    Par dyvim dans le forum Oracle
    Réponses: 16
    Dernier message: 30/01/2006, 10h48
  2. [DROITS] création de vues matérialisées
    Par aline dans le forum Oracle
    Réponses: 6
    Dernier message: 26/12/2005, 17h36
  3. Réponses: 8
    Dernier message: 28/11/2005, 10h22
  4. alternative à la création de vues dans une procedure stockée
    Par cladsam dans le forum MS SQL-Server
    Réponses: 2
    Dernier message: 01/09/2005, 17h07
  5. Problème de création de vue.
    Par pimousse76 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 24/02/2005, 15h14

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