OK、私の最初の質問はここにあります。T-SQLマージアップデートでSelectステートメントをソースとして使用する方法
私はT-SQLとMSSQL Serverの初心者ですので、辛抱してください。
私はMERGEコマンドを少し使っていて、データベースの一部のテーブルを同期させるのに使っています。それはこれまでのところうまくいきました。
私の質問はこれです。私は生産データが毎日入ってくるテーブルを持っており、データの一部には生産されている個々のケースのNetWeightが含まれています。
プロダクトコードを基にボックスの平均重量を計算し、生産データを調べるクイック選択クエリがわかりました。
select ProductCode, AVG(NetWeight) FROM dbo.Production
Group By ProductCode
Order by ProductCode
私のProductMasterテーブルには、AverageWeightの列があります。
私がしたいのは、自分のSelect Queryを、ProductMasterテーブルのAverageWeight列を更新するために使用できるマージコマンドのソースとして使用することです。
作業が完了したら、これをストアドプロシージャに変えて実行するようにスケジュールして、プラントで新しい製品が実行されたときにProductMasterテーブルが自動的に更新されるようにして、平均ケースウェイトを最新の状態に保ちます。
私の理解では、MergeのソースとしてSelect Queryを使用することはできますが、どのように動作するかの良い例は見つかりませんでした。 、またはエラーが発生します。「」あなたがして文を終了しなければなりませんマージ使用するとき
alter table ProductMasteradd AverageWeight number
merge into ProductMaster t
using(
select
ProductCode
, AverageWeight = AVG(NetWeight)
from dbo.Production
group By ProductCode
order by ProductCode
)s
on t.ProductCode = s.ProductCode
when matched then update
set t.AverageWeight = s.AverageWeight;
注:製品コードを仮定 おかげ
こんにちは、ようこそ。あなたがここで何をしようとしているのか分かりません。おそらく、テーブル構造、いくつかのデータと望ましい出力を共有することは役に立ちます。ここから始めましょう。 http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ –