-1

Productテーブルに主キーとしてProductidとProduct_Noがあります。行を処理して、黒、青、赤、白の色のカテゴリでフィルタリングします。フィルタリングする方法は知っていますが、問題は、別のテーブルProduct_Category(Product_Id as PK)の行数を更新する必要があることです。しかし、Product_DIに従って更新しています。

説明:-黒色の製品テーブルを使用した製品テーブルのフィルタリング

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

したがって、Product_Categoryを更新する必要があります

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

あなたの知識を共有してください。あなたの助けに感謝。

4

1 に答える 1

3

私があなたの質問で何かを見逃していない限りUPDATE、最初のテーブルを使用して、2番目のテーブルに対して実行することができます:

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 FiddleWithDemoを参照してください

データが必要な場合INSERTは、次の操作を実行できます。

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

SQL FiddleWithDemoを参照してください

これらは両方ともSSISで実行できますExecute SQL Task。クエリを作成し、SQLステートメントフィールド内に配置します。これは、パッケージの実行時に実行されます。

于 2012-10-04T18:14:41.530 に答える