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

MS SQL Server Discussion :

prolème de requête


Sujet :

MS SQL Server

  1. #1
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Par défaut prolème de requête
    bonjour,
    mon problème se présente comme suit:

    j'ai une table table1 qui contient les champs suivants:
    id_table1 et id_clé_etranger . Cette table contient comme données ( pa exemple) :
    et j'ai une 2ème table table2 qui contient les champs suivants:
    id_table2 et montant
    avec id_clé_etranger de la table1 est la clé primaire dans ma table2, donc on comprend bien que j'ai une jointure entre ces deux tables.

    ma table2 contient comme données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     100   1000
              200   1000
              300   3000
    bon pour moi ma table2 est énorme en terme de données (donc ici j'ai tronqué juste pour éclaircir les choses). Ce que je veux faire c'est:
    puisque ma table2 contient des montants qui se répétent beaucoup sur plusieurs lignes alors je veux suprrimer ces lignes qui se répétent mais ma clé etrangère n'aura aucun sens dans ce cas, mais je cherche un moyen pour mettre à jour automatiquement cette clé etrangère par l'id de ma table2 (la ligne qui n'est pas suprrimée).

    dans mon exemple cité ci-dessus: je n'aurai dans ma table2 que les données suivantes :
    i.e: la 2ème ligne va sauter car son montant existe dans la 1ère ligne ( donc pas la peine qu'elle reste dans ma table2) et après je dois mettre à jour ma table1 ( mise à jour de ma clé étrangère qui a pour valeur

    200 et la rendre 100
    je sais que c'est un peu compliqué mais j'espére que vous m'avez compris.

    HELP PLEASE
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  2. #2
    Membre chevronné
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Par défaut
    si j'ai bien compris, le but est alors d'avoir la table1 comme ça:
    mais je dirais puisque tu va supprimer les doublons de montants de la table1, pourquoi avoir 2 lignes identiques dans table1 avec des clé différents ?
    n'est il pas plus adéquat de supprimer aussi la ligne dont l'id est 2 de la table1 et ainsi ne garder que les vrais clés (ceux de la table2).

  3. #3
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Par défaut
    oui et non
    en fait ma table1 contient autres champs que l'id et la clé étrangère. donc la différence entre mon 1er enregistrement et le 2ème réside dans les champs que je n'ai pas cité. autrement dit, le 1er et le 2ème enregistrement ne sont égaux que dans la clé etréngère( qui nous donne le montant)
    j'espere que maitnant que t'as bien compris ma problèmatique
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  4. #4
    Membre chevronné
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Par défaut
    d'accord !! en fait l'idéale donc pour toi est de récupérer les valeurs supprimé pour pouvoir mettre à jour la première table !!

    je pense qu'il faut voir du côté des triggers (fait une recherche sur la documentation SQL Server sur CREATE TRIGGER) et surtout des tables système DELETED et INSERTED mais bon ça me parait un peu compliqué, il faudra peut être revoir la spécification.
    j'espère que cela peut t'aider !

Discussions similaires

  1. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  2. Pb requête imbriquée
    Par ddams dans le forum Requêtes
    Réponses: 11
    Dernier message: 20/04/2004, 12h13
  3. Requete requête sous sybase
    Par eddie dans le forum Sybase
    Réponses: 3
    Dernier message: 02/04/2003, 14h51
  4. Requête imbriquée et indexes INTERBASE
    Par vadim dans le forum InterBase
    Réponses: 2
    Dernier message: 06/09/2002, 16h15
  5. [BDD] Enregistrer le résultat d'une requête
    Par Mowgly dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/06/2002, 15h26

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