【问题标题】:SQL Query to compare 2 rows and store the differences in variables C#?SQL查询比较2行并将差异存储在变量C#中?
【发布时间】:2012-06-15 07:36:46
【问题描述】:

我目前正在研究一个项目,该项目正在寻找一个仅在其中存储 2 行数据的数据库。该数据库将一直添加新行,并且在输入新行时将删除顶行以确保始终有 2 行。

我要做的是比较顶行数据和底行数据,然后将不同的数据存储在变量中。我只想存储与底行不同的数据,因为顶行将始终是最旧的数据集,我不再需要处理它。

我可以在 C# 端完成所有这些工作,但我想知道是否有办法在 SQL 端完成大部分工作?感谢您的帮助:-)

【问题讨论】:

  • 你能澄清一下你到底想要做什么吗?这非常难以理解,而且您的描述非常模糊。

标签: c# sql variables compare


【解决方案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

【讨论】:

  • 您好,感谢您的回复。为了澄清,我将在数据库中说第 1 行和第 2 行(第 1 行将始终是最旧的数据集)。然后当一组新数据进入时,它将被放入数据库,首先将检查是否存在 2 行,如果存在,第 1 行(最旧的数据)将被删除,当前第 2 行将成为第 2 行1,输入的新数据将是第 2 行。当新数据在第 2 行时,我想与第 1 行进行比较,看看哪些数据列发生了变化。然后我想存储第 2 行中发生变化的列的值。
【解决方案2】:

C#和SQL都可以,

SQL 方面,您需要编写 SP 或其他东西,它将以列名和更改列的形式返回您的差异。

看这里了解更多。 SQL Rows to Columns

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多