2012-06-20 88 views
2

ERD複雜性將

我的問題有一個老客戶以及問題的過時system.Part的。這3個表格包含數據庫中的現有數據。讓我解釋一下,情景是什麼,然後我希望你們能幫我完成這項工作。

方案

  • 有很多產品,尤其是ProductZone的,因爲你可能想象...
  • 客戶增加新的區(假設新區U,V,W, X,Y,Z),遺憾的是沒有用於ProductZone!
  • Costomer需要更新(插入)ProductZones使所有現有產品具有新的區域和一些舊區是指(假設年長區R,S,T)如果不存在的話,在這裏我遇到了.. 。,需要你的幫助!

說明

如果我理解正確,我不得不大量插入ProductZone,在這種情況下,通過複雜的T-SQL兩種過濾條件和INSERT語句。

我很樂意接受任何建議,提前致謝。

回答

1

該查詢將填充ProductZone表中可用現有產品的區域以及Product表中可用的新產品。

INSERT INTO ProductZone 
SELECT ZoneNo, 
     ProductNo 
FROM Product a 
     CROSS JOIN ZONE b 
WHERE NOT EXISTS (SELECT 1 
        FROM ProductZone c 
        WHERE a.ProductNo = c.ProductNo 
          AND a.zone = c.zone) 
+0

這是值得加入讓你的數據庫的備份你運行一個查詢之前。這樣你就安全了。 –

+0

@Romil非常好,你真的幫了我 –