Хорошо, поэтому мне нужно написать запрос, который, вероятно, я делаю намного сложнее, чем нужно, но я мог бы использовать некоторую помощь.Запрос на основе подсчета, времени и местоположения
Мне нужно выбрать записи клиентов, которые не виделись год или более, видели нас более одного раза, но могут быть только один раз, если это не в определенных местах.
Так что я до сих пор:
WITH CTE AS
(
SELECT
client_id,
location_id,
employee_id,
create_timestamp,
ROW_NUMBER() OVER(PARTITION BY person_id ORDER BY create_timestamp DESC) AS ROW
FROM
client_Appointment
)
SELECT
c.client_id,
COUNT(*)
FROM
CTE AS ce
INNER JOIN person AS c
ON p.person_id= ce.client_id
INNER JOIN employee_mstr AS em
ON em.employee_id = ce.empoyee_id
INNER JOIN location_mstr AS lm
ON lm.location_id = ce.location_id
WHERE
ce.create_timestamp <= CONVERT(VARCHAR(10), DATEADD(Year,-1,GETDATE()), 120)
GROUP BY
p.person_id
HAVING
COUNT(*) > 1
Я не уверен, куда идти отсюда. Кроме того, это не дает мне всю информацию, которая мне нужна, и если я добавлю эту информацию в предложение select, я должен использовать ее в группе, что означает, что я не получаю все необходимые записи.
Пожалуйста, добавьте выборочные данные, а также текущий и ожидаемый результат. – paqogomez
Полезно пометить вопросы базы данных как с помощью соответствующего программного обеспечения (MySQL, Oracle, DB2, ...) и версии, например. 'SQL-сервер-2014'. Различия в синтаксисе и особенностях часто влияют на ответы. – HABO