2012-10-04 16 views
-1

我有產品表有Productid和Product_No作爲主鍵。現在,當我處理行並將其過濾爲黑色,藍色,紅色,白色類別時。我知道如何過濾它,但問題是我必須更新另一個表Product_Category(Product_Id作爲PK)中的行數。但我已根據Product_DI進行更新。SSIS行數與條件

說明:黑色的 產品表

Product_ID | Product_No | Price | Color 
1   | 1   | 2.50 | Black 
1   | 2   | 0.96 | Black 
1   | 3   | 0.96 | Black 
1   | 4   | 0.96 | Black 
2   | 1   | 0.96 | Black 
2   | 2   | 0.96 | Black 
3   | 1   | 0.96 | Black 

-Filtering產品表,所以我必須更新PRODUCT_CATEGORY

Product_ID | Color_CNT 
1   | 4 
2   | 2 
3   | 1 

請分享你的知識。感謝你的幫助。

回答

3

除非我很想念你的問題的東西,你可以只運行一個UPDATE對你的第二個表,使用第一:

update t2 
set Color_CNT = ColorCount 
from table2 t2 
left join 
(
    select count(color) ColorCount, Product_ID 
    from table1 
    group by Product_ID 
) t1 
    on t2.product_id = t1.product_id; 

SQL Fiddle With Demo

如果需要INSERT數據,然後你可以做到以下幾點:

insert into table2 (product_id, color_cnt) 
select Product_ID, count(color) ColorCount 
from table1 
group by Product_ID; 

SQL Fiddle With Demo

這兩個都可以在SSIS中完成,您將創建Execute SQL Task並將查詢放入SQL語句字段中。這將在包運行時執行。

+0

感謝您的快速響應,但我必須在SSIS中執行此操作.... – 343

+2

@ 343您可以在SSIS中執行sql,使用執行SQL任務 – Taryn

+0

嗨,我是新手,並且我爲每個案例採用Row Count變量並通過行計數我有更新我的表。我嘗試與您的聲明,但我不會更新。請給我在ssis的解決方案。 – 343