0

TxnEnrollmentFamilyID,Ename,address,ageなどを持つテーブルがあります

FamilyID          EName          Address                  age
02748471070198329 TILOK CHAND    H.No.- D-248, SHAKUR     24

FamilyId ,MemberID MemberName ageそして、次のような列を持つ2番目のテーブルもあります

FamilyID           MemberID  MemberName   Gender     Age RelationCode   
02748471070198329  1         TILOK CHAND   1         65 
02748471070198329  2         SHANTI        2         60   2         
02748471070198329  3         DUMMY RECORD  1         99         
02748471070198329  4         INSERT        1         99   17            
02748471070198329  5         PUT DETAILS   1         99 

ここで私の質問は、家族に家族 ID があるはずのメンバーが 5 人いると仮定しますが、メンバー ID は上記の表のようsameにする必要がありdifferentます。家族にメンバーが 3 人しかいない場合、「挿入」や「ダミーレコード」。

4

1 に答える 1

0

この 2 番目の表とあなたの質問との関係がわかりません。私は、すべての familyId に対して 1 から 5 までのすべての memberId を持ちたいという問題に焦点を当てました。そのうちの 1 つが存在しない場合は、行を挿入したいのですが、それは理解できましたか? はいの場合、これを行う方法の例を次に示します。

create table foo (id int, another_id int, some_col varchar(20));
insert into foo (id, another_id, some_col) values 
(111,1, 'asdf'), 
(111,3, 'asdf'), 
(111,4, 'asdf'), 
(222,2, 'asdf'), 
(222,3, 'asdf'), 
(222,5, 'asdf');

create table dummy (dummies int);
insert into dummy values (1), (2), (3), (4), (5);


insert into foo (id, another_id, some_col)
select 
sq.id, sq.dummies, "I'm a dummy"
from
foo f
right join 
(
select distinct
id, dummies
from
foo 
, dummy 
) sq on f.id = sq.id and f.another_id = sq.dummies
where f.another_id is null;

select * from foo order by id, another_id;

出力:

ID  ANOTHER_ID  SOME_COL
111     1   asdf
111     2   I'm a dummy
111     3   asdf
111     4   asdf
111     5   I'm a dummy
222     1   I'm a dummy
222     2   asdf
222     3   asdf
222     4   I'm a dummy
222     5   asdf
于 2013-06-06T22:29:52.117 に答える