首先,我不是sql中的專家。這就是爲什麼尋求幫助。 我有一個oracle視圖,其中包含員工考勤記錄,包括遲到出勤日。 列:標記前兩個原始值在一個組中的值
員工編號,日期,及時,門診時間,Late_Arrival(如果晚了目前越來越被標記爲「1」)
我想標記每個員工拳頭一個月兩次晚來港定居人士「G」。來自查詢。
請幫我這個。
SELECT l.EMP_NO,l.ACCOUNT_DATE,l.IN_TIME,l.OUT_TIME,l.LATE_COMING_15 as
late_arrival,
(case when l.LATE_COMING_15 = 1 and
row_number() over (partition by trunc(l.ACCOUNT_DATE),l.LATE_COMING_15
order by l.IN_TIME
) <= 2
then 'G'
end) as flag
from LATE_EARLYDEP l
WHERE trunc(l.ACCOUNT_DATE) >= to_date('&DATE_FROM','dd/MM/yy') AND
trunc(l.ACCOUNT_DATE) <=to_date ('&DATE_TO','dd/MM/yy')
order by 1,2`
但我仍然沒有得到所需的結果。作爲一個例子,員工編號爲0005的flaged天應該是02/03/2017 & 06/03/2017。我已經上傳結果低於谷歌驅動器鏈接
結果https://drive.google.com/open?id=0B6Xw1eXeLyG7M3dtbmJUek5OdG8
還沒標記所需的結果。看到下面的谷歌驅動器結果。非常感謝。 https://drive.google.com/open?id=0B6Xw1eXeLyG7MkJPd2lTamRVa2M –
@KavinduAnthony。 。 。我認爲這個問題只是'partition by'中缺少'emp_no'。 –