使用源上的日期范围进行SQL合并
我正在尝试创建一个查询,该查询将只合并未来3天内发生的旅行。查询将每晚在Microsoft flows上运行,以填充公司应用程序。Db正在Azure SQL上运行,[Trip Date]数据类型为datetime2 我在getdate()和getdate()+3之间尝试了使用源上的日期范围进行SQL合并,sql,azure-sql-database,sql-merge,Sql,Azure Sql Database,Sql Merge,我正在尝试创建一个查询,该查询将只合并未来3天内发生的旅行。查询将每晚在Microsoft flows上运行,以填充公司应用程序。Db正在Azure SQL上运行,[Trip Date]数据类型为datetime2 我在getdate()和getdate()+3之间尝试了,但运气不佳,所有记录都合并了。谢谢你的帮助 merge TblAppTrips as target using TblTrips as source on (target.TripID = source.TripID) Wh
,但运气不佳,所有记录都合并了。谢谢你的帮助
merge TblAppTrips as target
using TblTrips as source on (target.TripID = source.TripID)
When matched then
update
set TripId = source.TripID,
cost = source.cost,
[Trip Date] = source.[Trip Date]
when not matched then
insert ([TripID], [cost], [Trip Date])
values (source.[TripID], source.[cost], source.[Trip Date]);
试试这个-你可能需要稍微玩弄一下数字,但它应该能为你指明正确的方向。在尝试更新时,基本上需要将目标窗口限制在接下来的三天内。插入的内容只会添加未来3天内发生的新行程
merge TblAppTrips as target
using TblTrips as source on (target.TripID = source.TripID)
When matched and datediff(day, getdate(), target.[Trip Date]) between 0 and 3
then
update
set TripId = source.TripID,
cost = source.cost,
[Trip Date] = source.[Trip Date]
when not matched and datediff(day, getdate(), source.[Trip Date]) between 0 and 3
then
insert ([TripID], [cost], [Trip Date])
values (source.[TripID], source.[cost], source.[Trip Date]);