2011-10-18 16 views
0

基本的に、私は多くのレコード(10,000+)を持つデータテーブルを持っていますクエリを使用して既存のレコードを更新します。

これらはすべて共通の4つのフィールドを持ち、データを入力する必要があります。ユニークなデータはTIMEです。

私はすでにこれらの4つのフィールドに基づいてグループのデータを特定したグループソートクエリを実行し、各グループの平均時間を計算しました。

リアルタイムの平均時間をテーブルに再挿入する必要があるため、個々のレコードの時間をそのタイプの平均に対して評価することができます。

たとえば、クエリから1グループは

プロセス1、Week2、Operator3、SHIFT4、AvgOfTIME = 120.70

結果を持っているでしょうそれは、そのすべてのレコードに再挿入し、その平均時間が必要となりますそれらの基準に合っていますが、すべてのグループ結果とレコードに対して実行します。

これも可能ですか?

答えて

2

あなたは、テーブルの使用サブクエリ

update t1 set t1.timefield = s2.AvgOfTIME 
from yourtable t1 
inner join 
(
    -- you query for calculating avg time 
) 
as t2 
on t1.Process1 = t2.Process1 and t1.Week2 = t2.Week2 and t1.Operator3 = t2.Operator3 and  t1.Shift4 = t2.Shift4 
+0

こんにちは、ご回答に感謝を更新する必要があります。 私の問題は、クエリごとのグループが約7,000の異なるグループを返すということです。 したがって、私は更新クエリを取得して、対応するグループと一致するすべてのレコードを更新しようとしています。そうでなければ、私は7,000の更新クエストを作成するか、手動で行う必要がありますか? – user1000556

+0

私はあなたがyourtable T1 ( はプロセス1、Week2、Operator3、SHIFT4を選択する内部ジョイン からその 「 更新さt1セットt1.timefield = s2.AvgOfTIME ような何かに行う必要がある、あなたのテーブルスキーマが、ゲストのことは知りませんプロセス1、週2、オペレータ3、シフト4、平均(時間フィールド) によるyourtable グループからのAvgOfTIMEとしてのAvg(時間フィールド) としてt2 としてt1.Process1 = t2.Process1およびt1.Week2 = t2.Week2およびt1.Operator3 = t2Operator3およびt1.Shift4 = t2.Shift4 ' –