看板 Database 關於我們 聯絡資訊
新手上路請問 我在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