[SQL ] insert 資料轉換問題

看板Database作者 (雷克南)時間17年前 (2009/03/05 19:13), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/1
新手上路請問 我在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)

03/05 21:37, , 1F
try NOT IN
03/05 21:37, 1F

03/06 18:37, , 2F
不用這麼複雜,from M M1 left join M M2 on M1.父=M2.子
03/06 18:37, 2F
文章代碼(AID): #19hxFAt2 (Database)