سلام
گرچه این تاپیک کمی قدیمی شده ولی چون خودم این مشکل رو داشتم گفتم یک مثال ساده رو با کد پست کنم
در تصویر زیر من 3 تا جدول دارم. از سمت چپ چدول tbl1 گروه بندی اصلی و جدول tbl2 گروه بندی فرعی هستش که به ازاء هر گروه اصلی باید تمام گروه های فرعی در جدول tbl3 بدون تکرار ثبت بشه:
sql.png
برای انجام اینکار در ابتدا Cursor استفاده کردم ولی در انتها به کدهای زیر تغییر دادم
INSERT INTO dbo.tbl3
( fldCategoryID ,
fldSubCategoryID
)
( SELECT T1.fldID ,
T2.fldID
FROM tbl1 AS T1
CROSS APPLY ( SELECT *
FROM tbl2
WHERE fldID NOT IN ( SELECT fldSubCategoryID
FROM tbl3
WHERE fldCategoryID = T1.fldID)
) AS T2
);
جدول tbl1 , tbl2 هیچگونه Relationی ندارند.
حالا هر بار که ردیف جدیدی به جدول tbl1 و یا جدول tbl2 اضافه می شه کافیه که کدهای بالا را اجرا کنم و تمام آیتم های جدید رو در جدول tbl3 اضافه کنم