作者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)
1F:推 jcjc79:try NOT IN 03/05 21:37
2F:推 Antzzz:不用这麽复杂,from M M1 left join M M2 on M1.父=M2.子 03/06 18:37