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 :

[ORACLE] Questions de TP


Sujet :

SQL Oracle

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 65
    Par défaut [ORACLE] Questions de TP
    Salut à tous,

    J'aimerai un petit coup de main pour finir mon TP de Oracle. Je trouve pas comment faire, et je galère grave, alors si quelqu'un pouvait m'aider.

    Voici la table sur laquelle on travaille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE COURS
    	(CODCOURS CHAR(6) NOT NULL UNIQUE,
    	 INTITULE CHAR(60),
    	 PROF CHAR(12),
    	 JOUR CHAR(8),
    	 HEURE NUMBER(2),
    	 SALLE CHAR(5),
    	 NBINSCRITS NUMBER(2));
    La question est la suivante: Quels sont les professeurs enseignant différents jours de la semaine ?

    J'essaye de trouver en faisant ça mais j'ai une erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> select prof from cours study where jour!=(select jour from cours where stud
    y.jour !=jour);
    select prof from cours study where jour!=(select jour from cours where study.jou
    r !=jour)
                                              *
    ERREUR Ó la ligne 1 :
    ORA-01427: sous-interrogation ramenant un enregistrement de plus d'une ligne
    Si quelqu'un a une idée ? J'aurai peut-être d'autres questions sur le reste des questions du tp, je les poserai ici.

    Merci à tous

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 65
    Par défaut
    Autre problème, et après je vous laisse tranquille promis.

    Question: Proportion des cours de base par département

    J'arrive à faire les 3/4 de la requête, il me manque juste à diviser par le nombre total de cours pour obtenir un pourcentage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SQL> select (count(*)*100) Percent_cours, substr(codcours, 1, 3) Dep from cours
    WHERE substr(codcours, 4, 1)='1' GROUP BY substr(codcours, 1, 3);
     
    PERCENT_COURS DEP
    ------------- ------------
              100 STM
              200 ECO
              100 SHS
              300 LOG
              300 SID
              400 FIN
              100 SJU
     
    7 ligne(s) sÚlectionnÚe(s).
    Quelqu'un aurait-il une idée pour me donner le nombre total de cours ?

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    dans la 1° essaye de remplacer != par NOT IN et dans la 2° AVG devrait régler ton problème

  4. #4
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    1) Prof ayant cours au moins 2 jours par semaine

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Select prof 
    from cours 
    group by prof 
    having count(distinct(jour))>1

  5. #5
    Nouveau candidat au Club
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Par défaut Prof ayant différent jours de cours
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT prof
      FROM cours study
     WHERE  exists    (SELECT jour
                      FROM cours
                      WHERE study.jour != jour)
    Le exists et conseillé à la place du not in

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par bgh94
    Le exists et conseillé à la place du not in
    pas forcément

    si l'ensemble de données inclus dans NOT IN est plus petit que celui du NOT EXISTS alors le NOT IN sera mieux. A priori EXISTS est mieux mais c'est pas une règle générale

  7. #7
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Ca ne peut pas marcher !
    Faire plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT prof
      FROM cours study
     WHERE  exists    (SELECT jour
                      FROM cours
                      WHERE study.jour != jour and study.prof=prof)

  8. #8
    Membre éclairé Avatar de LBO72
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    406
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 406
    Par défaut
    Pour répondre à OraFrance
    Je ne pense pas qu'on puisse afficher dans son segond problème une colonne et un AVG. On ne peut pas afficher un truc du genre :
    select (count(*)*100)/AVG(count(codcours)) Percent_cours, substr(codcours, 1, 3) Dep from cours
    WHERE substr(codcours, 4, 1)<>'1' GROUP BY codcours, substr(codcours, 1, 3)

    Merci.
    LBO72.

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2005
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 65
    Par défaut
    Bon pour le 1 ca fonctionne, c'est nikel.

    Par contre pour le deux, à part faire des vues intermédiaires, une avec le détail des élèves par département, et l'autre avec le nombre total d'élève, je vois pas trop comment faire.

  10. #10
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    J'ai plusieurs solutions, mais il faudrait expliciter ce que tu veux faire .

    1) Cours de base => substr(codcours,4,1)='1' ????
    2) Tu veux faire un pourcentage par rapport à quoi ? Cours de base / total des cours ? Cours de base / Total des cours de meme type ?
    3) Je ne comprends pas pourquoi tu parles du nb d'éléves ?

Discussions similaires

  1. Projet Oracle - Questions techniques
    Par Domingo60 dans le forum Oracle
    Réponses: 3
    Dernier message: 27/10/2010, 12h00
  2. [Oracle] Questions d'ordre général pour un DBA
    Par korrigan dans le forum Oracle
    Réponses: 7
    Dernier message: 06/11/2006, 14h31
  3. Réponses: 13
    Dernier message: 23/06/2005, 10h56
  4. Réponses: 2
    Dernier message: 22/04/2005, 16h44
  5. Question sur le BETWEEN d'Oracle
    Par Demco dans le forum Langage SQL
    Réponses: 9
    Dernier message: 06/05/2003, 15h23

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