0
我有STATUS列。值被批准,等待,拒絕。我必須計算機票在PENDING有多少天。Oracle查詢計算天數
ID Status Date
BNM Pend 11/nov/16
BNM Pend 12/nov/16
ABC Pend 11/nov/16
BNM Pend 12/nov/16
ABC Pend 11/nov/16
ABC Pend 12/nov/16
CVD pend 11/nov/16
CVD pend 12/nov/16
BNM Pend 10/NOV/16
ABC Pend 10/NOV/16
CVD Pend 10/NOV/16
CVD Approv 09/NOV/16
CVD PEND 08/NOV/16
當我在13/nov/16上運行查詢。
BNM-3 days
ABC-3 days
"CVD-5days" (counted as 5 days but it should count as 3 days).
從11月08計數,但它應該從11月10日16計有上09 11 16開的狀態的更新
Select t.ID,(t.date),t2.nofdays,t1.status
from table1 t
inner join
( select tt.id,max(tt.days)
from table1 tt
group by ...)t2
on t.id=t2.id
inner join
( ( select ttt.id,max(ttt.days), count(ttt.days) as noofdays
from table1 ttt
where status like 'PEND%'
group by ...)t2
on t1.id=t2.id and t1.date=t2.date
where trunc(t.date)=trunc(sysdate-1)
group by .....)
請定義「票證有多少天待定」。假設「票證」的意思是「ID」(在這種情況下,很容易猜到,但一般情況下請不要讓我們猜測,告訴我們您的數據中「ticket」的含義)。然後 - 「待定」意味着什麼,從最早的狀態「待定」,以便自那之後沒有其他狀態?還有什麼?你如何根據數據來測量「多少天」? (顯示你的查詢很重要,但它不能代替以通俗易懂的語言解釋完整細節中的邏輯。) – mathguy
另外 - 表中的重複行有什麼意義?例如,有兩行BNM,包括Pend狀態和相同日期(12/nov/16),意味着什麼?是否也有可能發生這樣的情況:您有兩行ID,兩者都具有相同的日期但不同的狀態?如果是這樣,哪個優先(哪個來的「之前」其他)? – mathguy