Я понимаю, что этот вопрос задавался много раз, и я просмотрел много сообщений по этому вопросу уже более суток.К сожалению, мне не удалось решить мою конкретную проблему, и я был бы очень признателен за любую помощь, которую вы все можете предложить.
Я считаю, что это разновидность проблемы "наибольший по группе", которая возникаетв StackOverflow несколько раз в неделю.
Запрос выполняется к базе данных для рабочих билетов.Данные, которые мне нужны, распределены по многим таблицам, и я объединяю их в одну область для работы.В этом конкретном случае таблица обновления содержит несколько строк для определенного рабочего запроса.Я пытаюсь присоединить его к таблице заявок и получить только самую раннюю дату обновления для этой заявки, где идентификатор пользователя соответствует пользователю, связанному с заявкой, из таблицы пользователей.В основном я использую, когда user_id
изменяется, чтобы определить, когда билет назначается конкретному пользователю.
UPDATE_TABLE
updateNumber | user_id | date | ticket_number
11 | 4586b03 | 2011-11-30 | 923479283
12 | 6786t03 | 2011-11-30 | 923479283
13 | 7986003 | 2011-12-02 | 923479283
14 | 7986003 | 2011-12-03 | 923479283
15 | 7986003 | 2011-12-04 | 923479283
16 | 5838397 | 2011-10-02 | 391983247
17 | 7986004 | 2012-01-03 | 663738223
18 | 7986003 | 2011-08-04 | 391983247
Запрос:
select
min(TA.updated_at) as UpdateVal
from Tickets T
inner join Users U on U.id = T.assigned_user_id
inner join UserGroup AU on U.login = AU.[User]
inner join TicketUpdate TA on TA.task_id = T.id
where
TA.task_id = 923479283 and TA.user_id = 7986003
возвращает: 2011-12-02
Этот подход работает, когда я жестко кодирую task_id
и user_id
для конкретной строки, как указано выше.Однако, когда я заменяю T.id
на 923479283 и U.id
на 7986003, чтобы получить эту информацию для всех билетов, запрос ничего не возвращает.Я пробовал много разных решений, включая присоединение таблицы TicketUpdate
к себе через псевдоним и так далее.
ПОМОГИТЕ!