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 :

Quelle est la requête SQL ?


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 41
    Points : 21
    Points
    21
    Par défaut Quelle est la requête SQL ?
    Bonjour,
    J'ai une table individu, table logement et table occupation qui lient ces deux tables ou il y a les deux clés primaires de la table logement et individu (il ya une relation n,n entre les tables individu et logement). Je voudrais créer ses trois tables sur PostgreSQL et rajouter une colonne qui s'appelle Revenu sur la table individu et ce colonne il sera rempli à partir d'informations de la table logement, s'il vous plait comment faire ça en SQL?
    Je vous remercie et je reste à votre disposition pour toute informations supplémentaires.

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 111
    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 111
    Points : 28 466
    Points
    28 466
    Par défaut
    Commence par faire un petit tour du côté des bases du SQL.

    Et puis tu reviens en nous présentant ce que tu as déjà fait et où exactement tu rencontres un problème, avec les messages d'erreur correspondant.

    Une petit jeu d'essai ne sera pas superflu.

  3. #3
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Bon c'est une habitude chez moi mais essayé d'expliquer mieux votre besoin !
    Franchement sans exemple, j'y comprend rien.

    @al1_24 a tout dit sinon

    Avez vous un MCD car je crois que votre conception est mauvaise !


  4. #4
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 41
    Points : 21
    Points
    21
    Par défaut
    Vous trexouverez ci-joint un extrait du MCD la ou il y a les tables et voila la requête que j'ai essayée de le faire, je pense qu'il répond à ce que je cherche!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    update "Individu"
       set "Revenu" =(0.99+97* "Region")
     where NLog.Logement = NLog.Occupation
       and NInd.Individu = NInd.Occupation
    Images attachées Images attachées  

  5. #5
    Membre à l'essai
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2013
    Messages : 41
    Points : 21
    Points
    21
    Par défaut
    J'ai montré ce que j'ai fait ainsi qu'un extrait du MCD, la ou il y a les trois tables mais personne ne m'a répondu!!!!

  6. #6
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Août 2010
    Messages : 44
    Points : 69
    Points
    69
    Par défaut
    Bonjour,


    Au vu de votre MCD et de votre tentative de SQL, nous avons :

    INDIVIDU
    IdInd
    revenu
    ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Jeu de test:
    IdInd      Revenu
    1          null
    2          null
    3          null
    LOGEMENT
    IdLog
    RG
    ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Jeu de test :
    IdLog  RG
    100    10        
    101    20
    102    30
    103    40
    104    50
    OCCUPATION
    IdInd
    IdLog



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Jeu de test :
    IdInd   IdLog
    1       100
    1       104
    2       101
    2       103
    3       102
    Vous souhaitez modifier la colonne "Revenu" dans la table INDIVIDU à partir du contenu de la colonne RG (Région ?) de la table LOGEMENT.

    Les cardinalités définies sur l'association OCCUPATION indiquent qu'un INDIVIDU peut occuper plusieurs logements, et qu'il en occupe au moins un.

    Nous allons donc supposer que vous faites la somme des valeurs de RG, multiplié par 97, puis on ajoute 0,99

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Résultat attendu dans INDIVIDU :
    IdInd   Revenu
    1       ( 10 + 50 ) * 97 + 0,99 = 5820,99
    2       ( 20 + 40 ) * 97 + 0,99 = 5820,99
    3       ( 30 ) * 97 + 0,99      = 2910,99

    Est-ce bien là précisément ce que vous voulez ?

    Quelle SGBDR dans quelle version utilisez vous ? MySql, Postgres, Oracle, ... ?


    La requête pourrait être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    UPDATE INDIVIDU   I
       SET Revenu = 0.99+97 * 
                (select sum (L."Region" )
                    from            LOGEMENT   L
                        inner join  OCCUPATION O
                                on  L.IdLog = O.IdLog
                  where O.IdInd = I.IdInd )
    WHERE exists (select 1
                      from OCCUPATION O
                     where O.IdInd = I.IdInd)
    ;
    Cdlt,
    OD

Discussions similaires

  1. Quelle est la requete SQL
    Par oami89 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 25/02/2011, 15h43
  2. Réponses: 8
    Dernier message: 11/03/2010, 14h59
  3. Quelle est la requête la plus performante ?
    Par senacle dans le forum Langage SQL
    Réponses: 2
    Dernier message: 28/09/2007, 13h59
  4. Réponses: 1
    Dernier message: 04/04/2007, 16h17
  5. [SQL] Quelles sont les requêtes SQL que l'on peut pirater ?
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 29
    Dernier message: 21/09/2006, 19h56

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