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

Décisions SGBD Discussion :

BTS Info de Gestion passé aujourd'hui question pour SQL


Sujet :

Décisions SGBD

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 81
    Points
    81
    Par défaut BTS Info de Gestion passé aujourd'hui question pour SQL
    Bonjour à tous,

    J'ai passé aujourd'hui le BTS épreuve étude de cas option DA et j'aimerai savoir si les requêtes que j'ai réalisé sont bonne, par simple curiosité ^^

    Merci à tous ceux qui pourront me répondre, d'avance merci

    Voici le sujet : http://www.sidem.ch/bts.jpg

    et voici mes requetes :

    a)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT NumProjet, Désignation FROM ProjetTerminé WHERE (ChargeRéelle/ChargeEstimé)>1,25;
    b)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Libellé, AVERAGE(ChargeRéelle) FROM ProjetTerminé, TypeProjet
    WHERE ProjetTerminé.CodeType=TypeProjet.CodeType
    GROUP BY Libellé;
    c)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT LiberServ FROM Service WHERE CodService IN
    (SELECT CodeService FROM Personnel WHERE Matricule IN
    (SELECT DISTINCT Matricule FROM ParticipeProjet))
    ORDER BY LibServ ASC;
    d)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Matricule, NomPers FROM Personne, ParticipeProjet WHERE 
    NumProjet="756" AND
    NbJours IN (SELECT MAX(NbJours) FROM PartcipeProjet

  2. #2
    Membre habitué Avatar de Xavinou
    Inscrit en
    Mai 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 135
    Points : 156
    Points
    156
    Par défaut
    J'ai l'impression que la d) est fausse car tu compares le nombre de jour du projet "756" au max du nombre de jour de tous les projets... ça ne peut marcher que si le projet "756" est celui où il y a le plus de jour ? En plus il faut écrire le prédicat de jointure entre Personne et ParticipeProjet.
    J'aurais plutôt mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT Matricule, NomPers FROM Personne, ParticipeProjet 
    WHERE
    Personne.Matricule = ParticipeProjet.Matricule AND
    NumProjet="756" AND
    NbJours IN (SELECT MAX(NbJours) FROM PartcipeProjet where NumProjet="756")
    Sinon le reste a l'air bon.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 81
    Points
    81
    Par défaut
    Arf effectivement je me suis un peu trop précipité sur la dernière requêtes, c'est vrai que c'est totalement faux ce que je fais...

    Je te remercie de m'avoir conscaré du temps , a bientot

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 782
    Points : 52 783
    Points
    52 783
    Billets dans le blog
    5
    Par défaut
    Pour ma part je noterais zéro ces réponse... Mais comme zéro il faut le justifier, je donnerais 1...

    Alors on corrige :

    a)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SELECT NumProjet, Désignation FROM ProjetTerminé WHERE (ChargeRéelle/ChargeEstimé)>1,25; 
     
    Mauvais ! Solution :
     
    SELECT NumProjet, Désignation 
    FROM   ProjetTerminé 
    WHERE  (CAST(ChargeRéelle AS FLOAT) / CAST(ChargeEstimé AS FLOAT) > 1.25;
    3 fautes : les deux transtypages ont été oublié, la division sera donc une division entière (pas de virgule). Le séparateur décimal est le point, pas la virgule. Cette requête n'aurait donc pas dépassé le stade de la compilation (erreur de syntaxe)


    b)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SELECT Libellé, AVERAGE(ChargeRéelle) FROM ProjetTerminé, TypeProjet
    WHERE ProjetTerminé.CodeType=TypeProjet.CodeType
    GROUP BY Libellé;
     
    Peu élégant ! Solution :
     
    SELECT Libellé, AVERAGE(ChargeRéelle) 
    FROM   ProjetTerminé PT
           INNER JOIN TypeProjetTP
                 ON PT.CodeType = TP.CodeType
    GROUP BY Libellé
    Les jointures ne se font pas dans le WHERE, mais dans la clause JOIN avec le prédicat ON

    c)
    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
     
    SELECT LiberServ FROM Service WHERE CodService IN
    (SELECT CodeService FROM Personnel WHERE Matricule IN
    (SELECT DISTINCT Matricule FROM ParticipeProjet))
    ORDER BY LibServ ASC;
     
    Peu élégant ! Solution :
     
    SELECT LiberServ 
    FROM   Service S
           INNER JOIN Personnel P
                 ON S.CodService = P.CodService
           INNER JOIN ParticipeProjet PP
                 ON P.Matricule = PP.Matricule
    ORDER BY LibServ
    Eviter le IN lorsque la jointure est possible.


    d)
    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
     
    SELECT Matricule, NomPers 
    FROM Personne, ParticipeProjet 
    WHERE NumProjet="756" 
      AND NbJours IN (SELECT MAX(NbJours) 
                      FROM PartcipeProjet 
     
    Mauvais ! Solution :
     
    avec correlation :
     
    SELECT P.Matricule, NomPers
    FROM   Personnel P
           INNER JOIN ParticipeProjet PP
                 ON P.Matricule = PP.Matricule
    WHERE  NumProjet = 756
      AND  NbJours = (SELECT MAX(NbJours) 
                      FROM   ParticipeProjet
                      WHERE  NumProjet = PP.NumProjet)
     
    sans corrélation :
     
    SELECT P.Matricule, NomPers
    FROM   Personnel P
           INNER JOIN ParticipeProjet PP
                 ON P.Matricule = PP.Matricule
    WHERE  NumProjet = 756
      AND  NbJours = (SELECT MAX(NbJours) 
                      FROM   ParticipeProjet
                      WHERE  NumProjet = 756)
    1) parenthèse finale oubliée
    2) une valeur numérique n'est ni entre guillement ni entre apostrophe (756)
    3) il manque la restriction de la sous requête sur le projet considéré
    4) les jointures se font à l'aide du prédicat JOIN


    Moralité, je prédit que tu vas avoir entre 12 et 14... Et que l'on ferait bien d'apprendre au prof le langage SQL.

    A l'occasion donne moi ton adresse sur ce forum je t'enverrais mon dernier bouquin sur le sujet !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre habitué Avatar de Xavinou
    Inscrit en
    Mai 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 135
    Points : 156
    Points
    156
    Par défaut
    Moi je serais quand même moins sévère
    Pour un BTS on va pas te demander de faire de l'optimisation de requête ! Peut importe comment tu exprime tes jointures, du moment que cela fonctionne.

    Concernant la syntaxe, le correcteur n'est pas un compilateur, donc c'est surtout l'esprit de la solution qu'il va prendre en compte...
    Par exemple, que tu mettes = "756" ou 756 c'est un peu pareil, surtout que dans le schéma donné il n'y a pas les types des colonnes (où alors je l'avais lu trop vite !)
    Concernant les fonctions de CAST, est ce que c'est normalisé dans SQL ou bien c'est spécifique à certains SGBD ? D'ailleurs le sujet ne dit pas non plus quel SGBD est utilisé...

    Bref, ça serait pas sympa de vous noter sur la syntaxe

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 782
    Points : 52 783
    Points
    52 783
    Billets dans le blog
    5
    Par défaut
    SQL est un langage qui plus est normalisé. Un langage c'est une combinaison de syntaxes. Un exercice SQL c'est exprimer une solution à l'aide d'une syntaxe...

    COALESCE est normalisé depuis 1992 !

    A lire : http://sqlpro.developpez.com/cours/null/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre émérite

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Points : 2 579
    Points
    2 579
    Par défaut
    Personnellement j'adore la rigueur d'SQLpro, tu voudrais pas un fils adoptif ?

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Là c'est une épreuve étude de cas alors on peut espérer que le correcteur ne sera pas trop regardant de la syntaxe. Mais c'est essentiel de corriger les erreurs sur le forum pour éviter que des membres prennent l'exemples comme régles alors qu'il est faux

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 74
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par SQLpro

    A l'occasion donne moi ton adresse sur ce forum je t'enverrais mon dernier bouquin sur le sujet !
    Vous etes ecrivant specialise en informatique ? Par curiosite vous envoyez vos bouquins a tout le monde ?

  10. #10
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 782
    Points : 52 783
    Points
    52 783
    Billets dans le blog
    5
    Par défaut
    Non ! Uniquement à ceux je j'assassine publiquement et pour qu'ils puissent apprendre enfin SQL !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 74
    Points : 67
    Points
    67
    Par défaut
    Citation Envoyé par SQLpro
    Non ! Uniquement à ceux je j'assassine publiquement et pour qu'ils puissent apprendre enfin SQL !

    A +
    Ah donc dans un sens j'ai de la chance je suppose . Sinon vous connaissez bien DB2 UDB d'IBM s'il vous plait ?

  12. #12
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 782
    Points : 52 783
    Points
    52 783
    Billets dans le blog
    5
    Par défaut
    Assez, j'ai fait quelques missions sur ce SGBDR. Au niveau SQL, c'est le plus normatif de tous. Au niveau facilité de dev, c'est pas terrible car l'interface Java est comme sous Oracle, hyper lente.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. Salaire Bac+2 (BTS Info de Gestion avec les 2 options).
    Par ero-sennin dans le forum Salaires
    Réponses: 7
    Dernier message: 24/01/2009, 22h20
  2. Salaire BTS Info de gestion
    Par bdf94 dans le forum Salaires
    Réponses: 9
    Dernier message: 28/05/2008, 08h49
  3. [Stage][77][RP] Etudiante 2nd année BTS info de gestion
    Par animithra dans le forum Demandes
    Réponses: 0
    Dernier message: 04/08/2007, 09h30
  4. Que faire avec un BTS info gestion option réseaux
    Par nando94 dans le forum Etudes
    Réponses: 8
    Dernier message: 12/08/2006, 19h26
  5. [ETUDES] Apres mon BTS Info. de gestion
    Par astro84 dans le forum Etudes
    Réponses: 8
    Dernier message: 05/04/2006, 22h18

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