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 :

Aide contrôle SQL


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 6
    Par défaut Aide contrôle SQL
    Bonsoir,

    Il y a une semaine, on a eu un devoir d'une heure sur SQL, et visiblement, toute la classe l'a raté. Du coup, le prof dans son infinie bonté, nous a proposé de le refaire chez nous. Et il fera la moyenne des deux notes...

    Du coup, j'aurais bien besoin d'aide, histoire d'avoir 20. Bien entendu, je vais aussi chercher de mon côté, j'ai jusqu'à mercredi. Mais si vous savez répondre à des questions, j'accepterai volontiers vos réponses.

    Voici le contrôle en question :

    Nom : 1508099074-sql.png
Affichages : 649
Taille : 107,1 Ko

    Je vous remercie d'avance !
    Images attachées Images attachées  

  2. #2
    Membre émérite
    Femme Profil pro
    Service informatique presque à moi seule (TPE), ex-architecte fonctionnel
    Inscrit en
    Août 2017
    Messages
    358
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Service informatique presque à moi seule (TPE), ex-architecte fonctionnel
    Secteur : Finance

    Informations forums :
    Inscription : Août 2017
    Messages : 358
    Par défaut
    Bonsoir CRhodes7,

    Ce n'est pas un service à te rendre que faire ce contrôle à ta place.
    Surtout que tu ne seras certainement pas quitte avec SQL à si bon compte ! Tu risques fort de le retrouver sur ton chemin, alors autant dompter la bête maintenant.
    Tu as des tutoriels sur le site, comme ceux-ci.
    Si tu ne comprends pas un des points du cours, ou si tu veux valider une solution, avec plaisir.

    Cordialement,
    Paraffine.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 6
    Par défaut
    Bonsoir,

    Tu as raison, c'est pour ça que je viens d'essayer de le faire seul. Du coup, j'aurais juste besoin d'un avis sur ces réponses :

    13. Diminuer l'emprunt de tous les clients habitant 'Marseille' de 5% (3 pts)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE EMPRUNT
    SET E.Montant = E.Montant * 0.95
    FROM CLIENT CL, EMPRUNT E
    WHERE E.Num_Client = CL.Num_Client
    AND CL.Ville_Client = “Marseille” ;
    14. Fermer les comptes du client 'CLOE' (1 pt)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE 
    FROM CLIENT
    WHERE Nom_Client = “CLOE” ;
    C'est correct ? Merci d'avance !

  4. #4
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    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 140
    Par défaut
    La syntaxe UPDATE ... FROM n'est pas normalisée. Elle n'est reconnue que par quelques SGBD qui font des entorses à la norme.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par CRhodes7 Voir le message
    13. Diminuer l'emprunt de tous les clients habitant 'Marseille' de 5% (3 pts)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE EMPRUNT
    SET E.Montant = E.Montant * 0.95
    FROM CLIENT CL, EMPRUNT E
    WHERE E.Num_Client = CL.Num_Client
    AND CL.Ville_Client = “Marseille” ;
    Comme a dit al1_24, ce n'est pas normalisé de faire ainsi.

    Autre remarque concernant cette requête : Les jointures s'écrivent depuis 1992 avec l'opérateur JOIN ; il serait temps de s'y mettre ! Je suis sidéré qu'on vous apprenne encore l'ancienne syntaxe !

    Revenons au problème qui consiste donc à écrire correctement la clause de restriction (WHERE)...
    Il faut faire une sous-requête réalisant la jointure entre CLIENT et EMPRUNT pour restreindre la requête aux clients habitant Marseille.
    Je vous donne donc la piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE EMPRUNT
    SET Montant = Montant * 0.95
    WHERE Num_Emprunt IN
    (
        SELECT e.Num_Emprunt
        FROM EMPRUNT e
        INNER JOIN -- et là je vous laisse continuer ;)
    14. Fermer les comptes du client 'CLOE' (1 pt)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    DELETE 
    FROM CLIENT
    WHERE Nom_Client = “CLOE” ;
    C'est correct ?
    Non. Là vous supprimez le client ; ce n'est pas ce qui est demandé.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  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
    22 034
    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 : 22 034
    Billets dans le blog
    6
    Par défaut
    En sus une chaine de caractères ne se délimite pas par des guillemets ( " ) mais par des apostrophes ( ' )

    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 du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2017
    Messages : 6
    Par défaut
    Je suis désolé, c'est pourtant ce qu'on nous apprend... Du coup, je vais modifier tout ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    UPDATE EMPRUNT
    SET Montant = Montant * 0.95
    WHERE Num_Emprunt IN (
     	SELECT E.Num_Emprunt
     	FROM EMPRUNT E
     	INNER JOIN CLIENT CL ON E.Num_Client = CL.Num_Client
     	WHERE CL.Ville_Client = ‘Marseille’ ;
    Sinon, clôturer le compte, on peut faire comment avec ces tables ? En gros, on peut rien Delete, il faut toujours que les données soient visibles, même si le compte est fermé ? Je suis désolé, je me sens vraiment bête pour le coup.

Discussions similaires

  1. [oracle 10g] aide connection sql
    Par isidore dans le forum Oracle
    Réponses: 8
    Dernier message: 15/02/2006, 12h11
  2. besoin d'aide pl/SQL
    Par toome dans le forum PL/SQL
    Réponses: 1
    Dernier message: 13/12/2005, 16h26
  3. Besoin d'aide requete sql
    Par dinde dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/10/2005, 10h09
  4. [Aide requete SQL]
    Par viny dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 22/04/2005, 18h00
  5. aide PL/SQL syntaxes [debutant] [mauvaise doc]
    Par sdeb dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 19/01/2004, 13h59

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