Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Diessolve Member Откуда: Сообщений: 22 |
Помогите пожалуйста составить запрос. Есть две таблицы (Request, Req_mov) в Request у каждой строки уникальный ИД связанный со второй таблицей(Req_mov), но во второй таблице эти значения не уникальны и могут повторяться множество раз. Как сделать запрос таким образом что бы для каждого уникального ИД выводилась лишь одна строка с данными из(Req_mov). Нужна именно последняя запись для ИД. На данный момент выводит все строки из второй таблицы.SELECT Request.id, u2.Name AS Пользователь, Type_tb.TypeName AS Тип, Request.Comment AS Комментарий, Priority.PriorityName AS Приоритет, Status_tb.StatusName AS Статус, u1.Name AS Специалист, Request.Room AS Кабинет, Request.Phone AS Телефон FROM Req_mov INNER JOIN Request ON Req_mov.id = Request.id INNER JOIN Priority ON Req_mov.id_priority = Priority.id_priority INNER JOIN Status_tb ON Req_mov.id_status = Status_tb.id_status INNER JOIN Type_tb ON Req_mov.id_type = Type_tb.id_type INNER JOIN Users AS u1 ON Req_mov.id_spec = u1.id_user INNER JOIN Users AS u2 ON Request.id_user = u2.id_user WHERE u1.Name = '" +Program.UserInfo.UserName+ "'" |
4 май 18, 09:58 [21386469] Ответить | Цитировать Сообщить модератору |
Kopelly Member Откуда: Красноярск Сообщений: 289 |
Diessolve, Inner join замени на Cross apply (Select top 1 * From Req_mov Where Request.ID = Req_mov.ID Order by [Порядок сортировки] Desc) |
4 май 18, 10:24 [21386560] Ответить | Цитировать Сообщить модератору |
Diessolve Member Откуда: Сообщений: 22 |
Kopelly, Что то у меня ничего не получается :с |
4 май 18, 10:52 [21386674] Ответить | Цитировать Сообщить модератору |
Руслан Дамирович Member Откуда: Резиновая нерезиновая Сообщений: 940 |
А это потому что у тебя весь запрос в одну строчку. Приведу аналогию. Не секрет что очень сложно прочитать правильно предложение с более чем сотней слов и при этом не содержащего ни одного знака препинания хотя и без орфографических ошибок и уж тем более невозможно читая такой текст уловить уловить смысл с первого прочтения но как говорится сам себе злобный буратино точка |
||
4 май 18, 11:00 [21386702] Ответить | Цитировать Сообщить модератору |
Kopelly Member Откуда: Красноярск Сообщений: 289 |
Diessolve,SELECT Request.id, u2.Name AS Пользователь, Type_tb.TypeName AS Тип, Request.Comment AS Комментарий, Priority.PriorityName AS Приоритет, Status_tb.StatusName AS Статус, u1.Name AS Специалист, Request.Room AS Кабинет, Request.Phone AS Телефон FROM Request cross apply (Select top 1 * From Req_mov Where Req_mov.id = Request.id /*Order by [Добавит критерий последнего и раскомментировать] */) Req_mov INNER JOIN Priority ON Req_mov.id_priority = Priority.id_priority INNER JOIN Status_tb ON Req_mov.id_status = Status_tb.id_status INNER JOIN Type_tb ON Req_mov.id_type = Type_tb.id_type INNER JOIN Users AS u1 ON Req_mov.id_spec = u1.id_user INNER JOIN Users AS u2 ON Request.id_user = u2.id_user WHERE u1.Name = '" +Program.UserInfo.UserName+ "'" |
4 май 18, 11:12 [21386727] Ответить | Цитировать Сообщить модератору |
Diessolve Member Откуда: Сообщений: 22 |
Kopelly, Спасибо, но выводит самую раннюю строку, а не самую последнюю. |
4 май 18, 11:22 [21386754] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
Чукча не читатель?
/*Order by [Добавит критерий последнего и раскомментировать] */
|
||
4 май 18, 11:25 [21386764] Ответить | Цитировать Сообщить модератору |
Diessolve Member Откуда: Сообщений: 22 |
Владислав Колосов, Чукча совсем не опытен в SQL Тут помог гугл - Order by desc |
4 май 18, 11:27 [21386773] Ответить | Цитировать Сообщить модератору |
Diessolve Member Откуда: Сообщений: 22 |
Kopelly, Спасибо добрый человек за помощь :3 |
4 май 18, 11:29 [21386782] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |