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 :

Remplir une table à partir des données d'une autre table


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Par défaut Remplir une table à partir des données d'une autre table
    Bonjour à tous ,
    J'ai un petit problème dans mon projet.
    En bref , j'ai 2 tables
    employés (cin,nom,prenom,nbr_heures_mois,prix_heure)
    nbr_heures_mois : le nombre d'heures à travailler par mois
    prix_heure : le prix d'une heure
    fiche_paie (id_fiche,cin# , nom# , prenom#,salaire )
    et le salaire est : nbr_heures_mois * prix_heure

    Mon problème est que je veux que la table fiche_paie soit remplie automatiquement à partir de la table employés.

    Et lorsqu'on ajoute un employé, sa fiche de paie sera automatiquement ajoutée aussi.

    Merci pour votre aide

    N.B :
    # j'ai essayé avec cette commande , mais toujours pas de solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO "fiche_paies" (nom,prenom,cin,salaire)  SELECT  (nom,prenom,cin,nbr_heuresmois*prix_heure)      FROM "employés"   WHERE fiche_paies.cin=employés.cin)

  2. #2
    Membre éclairé
    Femme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2012
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2012
    Messages : 404
    Par défaut
    Essaie de suivre ce code (comporte aussi notion de jointure)

    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
     
    INSERT INTO tab_1
    (
    id_client, 
    nom, 
    adresse, 
    nombre_visite)
    SELECT 
    (
    cl.id_client,
    cl.nom, 
    cl.adresse, 
    vi.nombre_visite
    FROM client ci, visite vi
    WHERE ci.id_client=vi.id_client
    )
    NOte:
    Dans le select, tu peux faire ce que tu veux en respectant :
    1- le nombre de colonnes (égal à celui de la table de l'insert)
    2- respecter les types de données (en se reférant aux colonnes de la table d'insert)
    3- respecter les contraintes: insertion d'un champ NULL...

  3. #3
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Par défaut
    Je n'ai pas compris votre exemple... Est-ce que ce sont 2 tables avec les mêmes attributs ?

  4. #4
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Par défaut
    J'ai essayé avec cette commande , mais toujours pas de solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO "fiche_paies" (nom,prenom,cin,salaire)  SELECT  (nom,prenom,cin,nbr_heuresmois*prix_heure)      FROM "employés"   WHERE fiche_paies.cin=employés.cin)

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Votre ordre SELECT est indépendant de votre ordre INSERT.

    Vous mentionnez la table fiche_paies dans la clause WHERE du SELECT.
    Il faut supprimer cette clause WHERE.

  6. #6
    Futur Membre du Club
    Inscrit en
    Décembre 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 4
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Votre ordre SELECT est indépendant de votre ordre INSERT.

    Vous mentionnez la table fiche_paies dans la clause WHERE du SELECT.
    Il faut supprimer cette clause WHERE.
    SVP expliquer un peu .. je suis un débutant en bd

  7. #7
    Membre extrêmement actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 954
    Par défaut
    Si j'ai bien compris tu veut qu'a chaque fois qu'un employé et ajouté on l'ajoute automatiquement dans fiche_paies avec la condition qu'il existe pas déjà?
    tu peut faire de cette manière
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     for select nom,prenom,cin,(nbre_heuresmois*prix_heure) as salaire from employés do
       if not (exists(select fiche_paies.cin from fiche_paies where (cin<>:cin)) then
       INSERT INTO "fiche_paies" (nom,prenom,cin,salaire)  values(:nom,:prenom,:cin,:salaire)

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/03/2015, 10h33
  2. Réponses: 3
    Dernier message: 13/08/2014, 18h14
  3. [MySQL] Remplir deux tables à partir des données d'une 3e table
    Par cleminute dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 11/09/2009, 22h06
  4. Update d'une table à partir des données d'une autre
    Par gregoryacf dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/04/2008, 14h02
  5. [TP] Remplir un tableau à partir des données d'un autre tableau
    Par The future scientist dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 27/05/2007, 17h31

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