1

私は現在、2行のデータのみを格納するデータベースを検討しているプロジェクトに取り組んでいます。このデータベースには常に新しい行が追加され、新しい行が入力されると一番上の行が削除され、常に2行になるようにします。

私が探しているのは、データの一番上の行とデータの一番下の行を比較し、変数に異なるデータを格納することです。一番上の行は常に最も古いデータのセットであり、それを処理する必要がなくなるため、一番下の行とは異なるデータのみを保存したいと考えています。

私はこれをすべてC#側で行うことができますが、SQL側でこれを行う方法があるかどうか疑問に思っていましたか? 助けてくれてありがとう :-)

4

2 に答える 2

1

明確化していただきありがとうございます。次の表を想定してみましょう。

create table temp_monitor(id int, stamp datetime, @newTemp1 float, @newTemp2 float)

次に、このストアドプロシージャがトリックを行う必要があります

create proc updateTempMonitor(temp_oven_1 float, temp_oven_2 float)
as

-- save the values where about to replace
declare @id int, @t1 float, @t2 float
select top 1 @id = id, @t1 = temp_oven_1, @t2 = temp_oven_2 from temp_monitor order by stamp

-- update the oldest
update updateTempMonitor set temp_oven_1 = @newTemp1, temp_oven_2 = @newTemp2 where id = @id

-- return data to caller (c#)
select @t1, @t2
于 2012-06-15T08:29:17.430 に答える
0

C#側とSQL側の両方で可能ですが、

SQL側では、列名と変更された列の形式でdiffを使用してピボットを返すSPまたは何かを記述する必要があります。

詳しくはこちらをご覧ください。SQL 行から列へ

于 2012-06-15T08:45:53.207 に答える