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éveloppement SQL Server Discussion :

Pb de Logique dans une simple requete


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut Pb de Logique dans une simple requete
    Bonjour,

    Comme le titre l'indique, j'ai un probleme de logique en SLQ (Je debute... ) sur une simple requete "SELECT"

    La situation: J'ai 2 tables A (10 enregistrements) et B (7 enregistrements)
    B contient une partie des informations de A (c'est comme un budget)
    A est la table avec les donnees actuelles

    Le principe: Mettre a jour B a partir des infos de A
    Pour cela je fais un update sur les enregistrements dans B. Tout se passe bien. Le probleme est qu'il me manque (apres la MAJ) 3 enregistrement dans B.

    Je dois donc faire un "INSERT" dans B avec les 3 lignes restantes dans A.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    INSERT INTO B
    SELECT *
    FROM A
    WHERE ?????
    La question: Comment faire le select sur les 3 lignes de A qui n'ont pas ete copiees dans B suite a l'update ?
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  2. #2
    Membre du Club
    Homme Profil pro
    SQL Server
    Inscrit en
    Juin 2010
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : SQL Server
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2010
    Messages : 43
    Points : 63
    Points
    63
    Par défaut
    Il faut la structure des deux table.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    Elles ont exactement la meme structure. Seules les donnees different par le nombre d'enregistrements dans chacune des tables.

    De part le fonctionnement de l'application, la table A contiendra toujours plus d'enregistrements que B
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    Voici la stucture des tables:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE A(
    [DataID] [int] IDENTITY(1,1) NOT NULL,
    [ScenarioYearKey] [int] NOT NULL,
    [OrgID] [int] NOT NULL,
    [DepartmentID] [int] NOT NULL,
    [EmployeeID] [int] NOT NULL,
    [EmployeeAlternativeName] [nvarchar](50) NULL,
    [Value] decimal(3,1) NULL)  'en fait c est une colonne par mois soit 12 colonnes en tout
    idem pour B

    Pour l'update, je fais un "INNER JOIN" sur OrgID, DepartmentID, EmployeeID, EmployeeAlternativeName et ScenarioYearKey
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    tu veux copier les donées de A vers B enfait ?

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    Oui et non en fait...

    Je veux mettre a jour les infos dans B correspondantes a celles dans A ET inserer dans B les infos au'il y a en plus dans A
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut

    Tu ne pourrais pas effacer dans B les lignes qui ne sont plus actuelles (lignes qui se trouvent dans A) et apres insérer les valuers actuelles de A vers B. Et utiliser un "NOT IN" pour ne pas avoir d'erreur de violation de PK

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    Non je peux pas effacer ce qu'il y a dans B, je suis oblige de faire un update...
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    En fait pour simplifier un peu mon probleme , voici la question a laquelle j'aurais besoin d'une reponse:

    J'arrive tres bien a updater B pour les enregistrements qui correspodent dans A.

    Comment retourner une table contenant les enregistrements de A qui ne sont pas dans B (apres mon update) ??
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2007
    Messages
    119
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 119
    Points : 98
    Points
    98
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Select * from A where dataID not in (select dataID from B)

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 191
    Points : 194
    Points
    194
    Par défaut
    Parfait !

    C'est exactement pourauoi j'aime ce forum: simple, rapide, precis... Parfait quoi!

    Merci mat777
    Ne pas oublier l'aide en appuyant sur ! Elle peut suffire dans de nombreux cas...
    ________________________________________________________________________
    Les cours et tutoriels pour apprendre Excel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. une simple requete
    Par shikakus dans le forum C#
    Réponses: 5
    Dernier message: 07/02/2007, 15h32
  2. integrer deux requetes dans une seule requete access
    Par laurent.w dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 27/12/2006, 15h11
  3. probleme avec une simple requete
    Par nassimmm dans le forum Langage SQL
    Réponses: 11
    Dernier message: 03/08/2006, 17h46
  4. Réponses: 5
    Dernier message: 06/06/2006, 12h14
  5. Probleme de logique dans une requete
    Par linou dans le forum Langage SQL
    Réponses: 11
    Dernier message: 18/03/2005, 19h52

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