元の行が分割される行数をカウントするループにストアドプロシージャに配置する以下のロジックから結果を取得するにはどうすればよいですか。したがって、特定の行は、最終的に3つの新しい行になるように計算される可能性があります...または行がない....または1つです。だから私はカウンターとそれを誘惑から抜け出して実際のテーブルに入れる方法が必要です。私は一時テーブルを更新しようとしましたが、今日は何時間も運が悪かったのです。すべてのIDを一時テーブルに挿入してみました。私はそれを行う方法にまったく慣れておらず、今日それをかなり研究してきました。ヘルプをいただければ幸いです。
declare @StartTime time
declare @EndTime time
declare @Temp_StartTime time
declare @temp_StartHour int
declare @temp_EndHour int
declare @temp_StartMinute int
declare @temp_EndMinute int
SET @StartTime='2:30:00'
SET @EndTime='4:01:00'
SET @Temp_StartTime=@StartTime
SET @temp_StartHour=DATEPART(HOUR, @StartTime)
SET @temp_EndHour=DATEPART(HOUR, @EndTime)
SET @temp_StartMinute=DATEPART(MI, @StartTime)
SET @temp_EndMinute=DATEPART(MI, @EndTime)
if(@temp_EndMinute>0)
BEGIN
SET @temp_EndHour=@temp_EndHour+1
END
DECLARE @Temp_Table TABLE
(
StartHour int,
StartMinute int,
EndHour int,
EndMinute int,
StartTime time,
EndTime time
)
WHile((@temp_EndHour-@temp_StartHour>=1))
BEGIN
INSERT INTO @Temp_Table
SELECT (DATEPART(HOUR, @Temp_StartTime)) AS StartHour,(DATEPART(MINUTE, @Temp_StartTime)) AS StartMinute,
@temp_StartHour+1 AS EndHour,
0 AS EndMinute, @StartTime as StartTime, @EndTime as EndTime
SET @temp_StartHour=@temp_StartHour+1
SET @Temp_StartTime=DATEADD(HOUR,1,@Temp_StartTime)
if(DATEPART(MI, @Temp_StartTime)!=0)
BEGIN
SET @Temp_StartTime=DATEADD(MI,-@temp_StartMinute,@Temp_StartTime)
END
END
--here's where it all goes horribly wrong
SELECT * INTO newTable FROM @Temp_Table
詳しくは:
答えは、私が提起した以前の質問にあります。誰かが私を助けるためのポイントを見つけるにはあまりにも多くの情報を投稿したと思ったので、私はその質問のこの縮小版を始めました。しかし、私は別のユーザーから素晴らしい答えを得たので、それは完全には真実ではありませんでした。