2012-10-08 2 views
0

j'ai table principale appelé customer où les colonnesinsérer plusieurs enregistrements dans une table en fonction de la condition

MainCustID AssocativeCustID 
11   22 
33   33 
45   56 
38   90 
56   1234 
356   356 

Maintenant, je dois insérer cette enregistrements de valeur à une plus table en fonction de la condition

  • si MainCustID et AssocativeCustID sont les mêmes, alors seulement 1 entrée est d'aller dans une autre table appelée collection (c'est l'entrée MainCustID)

  • si MainCustID et AssocativeCustID sont différentes, 2 entrées entrerez dans la table appelée collection (MainCustID et AssocativeCustID)

Comment puis-je obtenir ce concept? Espérons que ma question est claire ici

Je sais que cela peut être fait sur la base des curseurs est-il une autre façon que nous pouvons atteindre cet objectif

Toute aide sur ce serait grand

Merci

prince

+0

Dans votre deuxième cas d'où viennent les deux entrées? un de la première table et l'autre entrée d'où vient-elle? voulez-vous dire laisser le formulaire d'entrée la deuxième table 'collection' et ajouter l'autre entrée de la première table' customer' ?? –

Répondre

2

Vous pouvez le casser en trois sous-tâches:

insert into Collection 
    select MainCustID 
    from Customer 
    where MainCustID = AssocativeCustID; 
insert into Collection 
    select MainCustID 
    from Customer 
    where MainCustID <> AssocativeCustID; 
insert into Collection 
    select AssocativeCustID 
    from Customer 
    where MainCustID <> AssocativeCustID; 
  1. Insérez d'abord tous MainCustID où il est égal à la AssocativeCustID
  2. Alors tous MainCustID où il est inégal au AssocativeCustID
  3. Puis l'autre côté, tous AssocativeCustID où il est inégal à MainCustID

Voici un démo: http://sqlfiddle.com/#!2/60026/1/0

0

Sans l'utilisation de curseur vous devez exécuter ces deux requêtes d'insertion: -

insert into collection values (select MainCustId from customer where MainCustID = AssocativeCustID); 

insert into collection values (select MainCustId,AssocativeCustID from customer where MainCustID <> AssocativeCustID); 
Questions connexes