あるデータベースから別のデータベースにデータをコピーする必要があるという問題があります。データをリアルタイムで利用できるとは決して保証されません。 1日に5日間のデータを処理する必要があるかもしれません。処理日は、翌日の午前7時から午前6時59分まで、例えば2017-08-01 07:00と2017- 08-02 06:59。SQLでループ状の操作を実行してあるテーブルから別のテーブルにデータをコピーする方法
私は任意のループ構造が可能ですが、私は必要なSQL文の中に、以下の擬似コードを変換する方法がわからないことなく、しかし、これ任意の助けをいただければ幸いSQLを使用したい:
declare @lastDate datetime
set @lastDate = (select max(dc) from dmt)
do
if gettime() => 07:00 then
if @lastDate < getdate() then
insert id, dc into dmt where dc between @lastdate and @lastdate + 1 day from othertable
end if
end if
set @lastDate = (select max(dc) from dmt)
while @lastDate < getdate()
私はSQL Express 2012を使用しています。idはintで、dcはdatetimeです。 dmtはコピーした情報を保存したいテーブルで、othertableはコピー元の場所です。
ありがとうございました。
「Cursorの例に – Sparrow
を見て日ごとに異なる送信元と宛先のですか?毎日繰り返すのではなく、ただちにそれを行うことができない理由はありますか? – Xedni
Xedniの意味がわかりません。新しいレコードは毎日異なる時刻に毎日他のテーブルに追加されます。毎日、それらを集計してdmtテーブルにコピーする必要があります。毎週。要約されたデータのみが保持され、dmtに毎日の要約レコードが含まれていることを確認する必要があります。 – beliskna