Дни, прошедшие с момента получения последней справки
Я пытаюсь создать отчет, показывающий мне последнюю дату, когда клиент подал заявку.
Клиенты могут подать десятки билетов. Я хочу знать, когда был подан последний билет, и показать, сколько дней прошло с тех пор, как они сделали это.
У меня есть следующие поля:
Покупатель,
TICKET_ID,
Date_Closed
Все из той же таблицы "Билеты"
Я думаю, я хочу сделать рейтинг билетов по минимальной дате? Я попробовал этот запрос, чтобы получить что-то, но он дает мне все билеты от клиента. (Я использую SQL в продукте под названием Domo)
select * from (select *, rank() over (partition by "Ticket_id"
order by "Date_Closed" desc) as date_order
from tickets ) zd
where date_order = 1
4 ответа
select Customer, datediff(day, date_closed, current_date) as days_since_last_tkt
from
(select *, rank() over (partition by Customer order by "Date_Closed" desc) as date_order
from tickets) zd
join tickets t on zd.date_closed = t.date_closed
where zd.date_order = 1
Или вы можете просто сделать
select customer, datediff(day, max(Date_closed), current_date) as days_since_last_tkt
from tickets
group by customer
Чтобы выбрать другие поля
select t.*
from tickets t
join (select customer, max(Date_closed) as mxdate,
datediff(day, max(Date_closed), current_date) as days_since_last_tkt
from tickets
group by customer) tt
on t.customer = tt.customer and tt.mxdate = t.date_closed
Это должно быть достаточно просто,
SELECT customer,
MAX (date_closed) last_date,
ROUND((SYSDATE - MAX (date_closed)),0) days_since_last_ticket_logged
FROM emp
GROUP BY customer
Я бы сделал это с помощью простого подзапроса, чтобы выбрать последнюю закрытую дату для клиента. Тогда сравните это с сегодняшним днем с datediff()
чтобы получить количество дней с момента последнего закрытия.
Select
LastTicket.Customer,
LastTicket.LastClosedDate,
DateDiff(day,LastTicket.LastClosedDate,getdate()) as DaysSinceLastClosed
From
(select
tickets.customer
max(tickets.dateClosed) as LastClosedDate
from tickets
Group By tickets.Customer) as LastTicket
Основываясь на ответах, это то, что я сделал:
select "Customer",
Max("date_closed") "last_date,
round(datediff(DAY, CURRENT_DATE, max("date_closed")), 0) as "Closed_date"
from tickets
group by "Customer"
ORDER BY "Customer"