更新SQL语句并使用(如果存在)
我试图从一个表中选择一个值,并将其插入另一个表的特定部分。我有以下sql(mssql 2008) 这总是检索一个数据类型为real的值。我有另一个表,它有两列,一列是日期,旁边是小时,每小时有一个未来两周的条目。格式为2013-03-26 01:00:00.000等。我想将从上述代码中获得的值插入第二个表中,持续24小时(24个条目)。24小时的时间是今天早上6点到明天早上6点 我还有以下测试值为10的代码,只是为了证明代码正确更新了opnda更新SQL语句并使用(如果存在),sql,sql-server,if-statement,sql-update,exists,Sql,Sql Server,If Statement,Sql Update,Exists,我试图从一个表中选择一个值,并将其插入另一个表的特定部分。我有以下sql(mssql 2008) 这总是检索一个数据类型为real的值。我有另一个表,它有两列,一列是日期,旁边是小时,每小时有一个未来两周的条目。格式为2013-03-26 01:00:00.000等。我想将从上述代码中获得的值插入第二个表中,持续24小时(24个条目)。24小时的时间是今天早上6点到明天早上6点 我还有以下测试值为10的代码,只是为了证明代码正确更新了opnda UPDATE [GasNominations].[
UPDATE [GasNominations].[dbo].[OPNData]
SET
[Value] = '10'
WHERE NomSubmittedDate between DATEADD(HH, 6, DATEDIFF(dd, 0, GETDATE()))
and DATEADD(HH, 5, DATEDIFF(dd, 0, GETDATE()+1))
GO
我想用if exists语句替换“10”值,但语法不正确。试试这个
declare @total varchar(10)
if exists (select datesubmitted from JADHist
where datesubmitted = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-1)))
Begin
Select @total = JadOPNTotal from JADhist
where dateSubmitted = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-1))
end
else
begin
Select @total = jadopntotal from JADhist
where dateSubmitted = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-2))
end
UPDATE [GasNominations].[dbo].[OPNData]
SET
[Value] = @total
WHERE NomSubmittedDate between DATEADD(HH, 6, DATEDIFF(dd, 0, GETDATE()))
and DATEADD(HH, 5, DATEDIFF(dd, 0, GETDATE()+1))
GO
declare @total varchar(10)
if exists (select datesubmitted from JADHist
where datesubmitted = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-1)))
Begin
Select @total = JadOPNTotal from JADhist
where dateSubmitted = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-1))
end
else
begin
Select @total = jadopntotal from JADhist
where dateSubmitted = DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-2))
end
UPDATE [GasNominations].[dbo].[OPNData]
SET
[Value] = @total
WHERE NomSubmittedDate between DATEADD(HH, 6, DATEDIFF(dd, 0, GETDATE()))
and DATEADD(HH, 5, DATEDIFF(dd, 0, GETDATE()+1))
GO