作者kimi206rc (雷克南)
看板Database
標題[SQL ] insert 資料轉換問題
時間Thu Mar 5 19:13:11 2009
新手上路請問
我在SQL Server 2005有兩個資料表M和L
要寫Stored Procedure 把M資料處理到L資料表
下面有一B的"父親身份字號"欄位不知道該如何下SQL Command才能得到正確的結果
M資料表其中有三欄位:1.小孩ID 2.父親ID 3.小孩身份字號;
小孩ID 父親ID 小孩身份字號
1 1 A
2 2 B
3 1 C
而L資料表欄位要多insert 一個"父親身份字號"欄位
insert的邏輯是
1.當M.小孩ID=M.父親ID時,L.父親身份字號就等於是小孩身份字號;
2.當M.小孩ID不等於M.父親ID時,則透過小孩的M.父親ID=父親的M.小孩ID,
找出父親的小孩身分字號將父親資料的M.小孩身份字號塞到L.父親身份字號.
Table L
小孩身份字號 父親身份字號
A A
B B
C A
下面是我下的INSERT指令 但 M.小孩ID不等於M.父親ID 時不知道該如何寫?
還是說問題需要另外寫程式才能辦得到?
請SQL 達人指教 謝謝
insert into L
select
CASE WHEN 小孩ID=父親ID THEN 父親身份字號=小孩身份字號
ELSE 父親身份字號 IN (SELECT 小孩身份字號 WHERE 小孩ID=父親ID)
END AS 父親身份字號
from M
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.56.208.126
※ 編輯: kimi206rc 來自: 61.56.208.126 (03/05 19:15)
推 jcjc79:try NOT IN 03/05 21:37
推 Antzzz:不用這麼複雜,from M M1 left join M M2 on M1.父=M2.子 03/06 18:37