2009年9月12日土曜日

cross Join で一方が0件になり得るとき

Aにinsertするのだが、データをBから取ってきて、IDをIsNull(max(ID)+1,1)とか取ろうとしたとき、

Insert Into A (***) Select IsNull(max(a.ID)+1,1),B.XX ****
From A, B
where ***
Group By **

とするとAが0件のとき、登録できないので、

Insert Into A (***) Select A.ID,B.XX ****
From (Select IsNull(max(a.ID)+1,1) As ID From A ) A, B
where ***
Group By **

とすると解決する。

0 件のコメント:

コメントを投稿