我目前所面对的一个问题,我想更新我的表中的作业称为Service_Log_Temp有重复=“否”,并重复其余最早进入=“是”在SQL中更新最早的记录?
这里是我的表在瞬间:
所以我想一个脚本,它着眼于K_B_Job_No(你会看到我在这里列出的2个不同的作业),并更新基于L1_GA_SR_Creation_Date & L2_B_Start_time_Of_Activity与重复='最早进入否“,其余的重复=”是“。
这是它应该如何看:
任何想法?
我目前所面对的一个问题,我想更新我的表中的作业称为Service_Log_Temp有重复=“否”,并重复其余最早进入=“是”在SQL中更新最早的记录?
这里是我的表在瞬间:
所以我想一个脚本,它着眼于K_B_Job_No(你会看到我在这里列出的2个不同的作业),并更新基于L1_GA_SR_Creation_Date & L2_B_Start_time_Of_Activity与重复='最早进入否“,其余的重复=”是“。
这是它应该如何看:
任何想法?
试试这个
select key_service,k_r_job_no,L1_GA_SR_Creation_Date,L2_B_Start_time_Of_Activity,
case
when (select min(L1_GA_SR_Creation_Date) and min(L2_B_Start_time_Of_Activity)
then 'No'
else 'Yes'
end as Duplicate
from Service_Log_Temp
group by k_r_job_no
;with a as (select K_B_Job_No, min(L1_GA_SR_Creation_Date + cast(L2_B_Start_time_Of_Activity as datetime)) as dttime from Service_Log_Temp
group by K_B_Job_No)
select key_service,K_B_Job_No,L1_GA_SR_Creation_Date,L2_B_Start_time_Of_Activity,
(case when
(select dttime from a where a.K_B_Job_No=b.K_B_Job_No)=(L1_GA_SR_Creation_Date + cast(L2_B_Start_time_Of_Activity as datetime))
then 'NO' else 'YES' end) as Duplicate
from Service_Log_Temp b
这一个将适用于SQL Server。 – user1603038
这应该Postgres里,那里的串联是工作|| - 你必须改变,要无论是在你的系统的串联
背景:要找到每个作业的第一次运行时间:
select k_r_job_no,min(L1_GA_SR_Creation_Date+L2_B_Start_time_Of_Activity) from
service_log_temp
group by k_r_job_no
的问题就是,我们不能从获取的ID了此查询...
但我们可以将其用作子查询。由于通常不可能从子查询中获取多行,所以我们必须进行连接以获得每个作业的正确时间:(您可能需要进行类型转换才能使连接起作用)
select key_service from service_log_temp where
k_r_job_no||L1_GA_SR_Creation_Date+L2_B_Start_time_Of_Activity in(
select k_r_job_no||min(L1_GA_SR_Creation_Date+L2_B_Start_time_Of_Activity)
from service_log_temp
group by k_r_job_no
)
这可以被改写为更新:
update service_log_temp set Duplicate='Yes' where
k_r_job_no||L1_GA_SR_Creation_Date+L2_B_Start_time_Of_Activity in(
select k_r_job_no||min(L1_GA_SR_Creation_Date+L2_B_Start_time_Of_Activity)
from service_log_temp
group by k_r_job_no
)
再后来
update service_log_temp set Duplicate='No' where Duplicate is null
(如斯利拉姆建议,如果你想拥有它的一个查询,或使用“案例”)
您正在使用哪种数据库系统? – MortenSickel
我可以看到为什么2012-11-08 11:00是重复的,但为什么2012-11-09 08:30重复?为什么2012-11-13 13:58不是重复的? – t3hn00b
前三个工作具有相同的K_B_Job_No 28862103,而最后四个工作有另一个K_B_Job_No(28886103)(我必须仔细看表以查看差异..) – MortenSickel