2012-10-08 39 views
0

我曾主表稱爲customer,其中,列插入多條記錄到表中根據病情

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

現在我需要根據條件

  • 插入此值的記錄多了一個表如果MainCustIDAssocativeCustID是相同的,那麼只有1個條目是進入一個稱爲collection的表(即MainCustID條目)

  • 如果MainCustIDAssocativeCustID是不同的,那麼2項將進入表稱爲 collectionMainCustIDAssocativeCustID

我怎樣才能實現這個概念?希望我的問題是在這裏清楚

我知道這可以基於光標做的是有沒有其他的辦法,我們可以做到這一點

任何幫助將是巨大的

感謝

王子

+0

在你第二個情況是兩個條目是從哪裏來的?從第一張桌子和另一個入口來的哪一張?你的意思是離開第二個表'集合'的條目,並添加第一個表'客戶'的其他條目?? –

回答

2

你就能把它分爲三個子任務:

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. 首先插入所有MainCustID它是等於AssocativeCustID
  2. 然後,所有MainCustID它是不等於AssocativeCustID
  3. 再在另一面,所有AssocativeCustID它是不等於MainCustID

這裏有一個演示http://sqlfiddle.com/#!2/60026/1/0

0

沒有使用光標你需要運行這些兩個插入查詢: -

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

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