仅当上一个值小于插入到SQL Server表中的新值时,才开始存储过程

仅当上一个值小于插入到SQL Server表中的新值时,才开始存储过程,sql,sql-server,Sql,Sql Server,我有一个存储过程。我只希望它在日期值高于上一条记录时插入新值 Department Change Date ------------------------------------ Catering 3 2018-01-01 08:09:00.000 - Current Record Department Change Date ----------------------------------------------- Catering

我有一个存储过程。我只希望它在日期值高于上一条记录时插入新值

Department   Change    Date
------------------------------------
Catering        3      2018-01-01 08:09:00.000   - Current Record 

Department   Change    Date
-----------------------------------------------
Catering       3       2018-01-02 09:10:00.000   - New record to be inserted 
到目前为止我已经知道了,但是很明显选择是错误的。我想在
Insert
语句之前执行类似的操作

 if select top 1 * 
    from  database.[dbo].[DepartmentChange]
    where Department = @Department
      and Date > @Date
    order by Date desc  
begin 

请在这里提供一些非常模糊的细节,但我想你正在寻找类似的东西

if not EXISTS
(
    select * 
    from database.[dbo].[DepartmentChange]
    where Department = @Department
        and Date > @Date
)
    begin
        --do your insert
    end

else
    begin
        --do something else here
    end

这里的细节相当模糊,但我认为你正在寻找类似的东西

if not EXISTS
(
    select * 
    from database.[dbo].[DepartmentChange]
    where Department = @Department
        and Date > @Date
)
    begin
        --do your insert
    end

else
    begin
        --do something else here
    end

模糊的问题。我假设@Date,@部门来自新记录。所以也许像这样

if @Date > (select isnull(max(date),'1500-01-01') from database.[dbo].[DepartmentChange]
             where Department = @Department)
   begin
      insert statement here
   end

模糊的问题。我假设@Date,@部门来自新记录。所以也许像这样

if @Date > (select isnull(max(date),'1500-01-01') from database.[dbo].[DepartmentChange]
             where Department = @Department)
   begin
      insert statement here
   end

样本数据和期望的结果将非常有用。你说你想做一个插入,但是你的代码没有
insert
语句。首先,你缺少if语句的另一半<代码>如果(选择TOP 1…<@YourInputVariable…可能是您正在尝试的,但是很难用这么少的代码来判断。根本不清楚您在问什么或试图做什么。示例数据和期望的结果将非常有帮助。你说你想做一个插入,但是你的代码没有
insert
语句。首先,你缺少if语句的另一半<代码>如果(选择前1…可能是您正在尝试的,但很难用这么少的代码来判断。根本不清楚您在问什么或试图做什么。@Joey Sonic-如果您只想在满足条件时插入(而不是其他条件时插入)我建议将其作为where谓词添加到insert语句中,而不是使其变得如此复杂。@Joey Sonic-如果您只想在满足条件时插入(而不是其他条件),我建议将其作为where谓词添加到insert语句中,而不是使其变得如此复杂。