|
Оптимальный запрос | ☑ | ||
---|---|---|---|---|
0
Sem0709
25.01.17
✎
09:09
|
Всем здрасти!
ИМЯ - ДОКУМЕНТ - ДАТА -------------------------- Паша - Паспорт - 23.12.2018 Паша - ВоенБилет - 23.04.2020 Паша - Патент - 01.02.2022 Маша - ИностПаспорт - 28.07.2023 Саша - Паспорт - 15.10.2028 Подскажите запрос чтобы по Паше показать документ с максимальной датой... в результате нужно ИМЯ и ДОКУМЕНТ Я это вижу так, но может какие-то подводные камни или более читабельный вариант? ВЫБРАТЬ Документы.Наименование, Документы.ДатаОкончанияДействия ИЗ Справочник.Документы КАК Документы ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ Документы.Владелец КАК Владелец, МАКСИМУМ(Документы.ДатаОкончанияДействия) КАК ДатаОкончанияДействия ИЗ Справочник.Документы КАК Документы СГРУППИРОВАТЬ ПО Документы.Владелец) КАК ВложенныйЗапрос ПО Документы.Владелец = ВложенныйЗапрос.Владелец И Документы.ДатаОкончанияДействия = ВложенныйЗапрос.ДатаОкончанияДействия ГДЕ Документы.Владелец = &Владелец |
|||
1
toypaul
гуру
25.01.17
✎
09:11
|
Все правильно, только надо задуматься что будет если даты (максимальные) будут две или больше
|
|||
2
Sem0709
25.01.17
✎
09:14
|
(1) Да, как это решить мне так в голову и не пришло... видимо, придётся проверять результат на количество и если более одно, то подставлять первый...
|
|||
3
PRO100 NigGaZ
25.01.17
✎
09:19
|
Выбрать первые 1
Документ, Дата Из Т Упорядочить по Дата Убыв не? |
|||
4
d546
25.01.17
✎
09:20
|
(3) не
|
|||
5
Широкий
25.01.17
✎
09:23
|
Во вложенном запросе условие по владельцу поставь
|
|||
6
d546
25.01.17
✎
09:26
|
(0) 1. по мне не хватает поля "ИМЯ" в запросе, если учитывать что изначально было есть имя. или тогда во вложенном делать отбор сразу по владельцу.
2. если два документа с одинаковыми датами и нет приоритета по документу, то лучше группировку по дате и максимум по документу просто |
|||
7
d546
25.01.17
✎
09:26
|
(5) :)
|
|||
8
Sem0709
25.01.17
✎
09:27
|
(5) Не могу... этот запрос дальше по владельцу будет соединяться...
|
|||
9
Широкий
25.01.17
✎
09:28
|
(0) Если запрос самомстоятельный - не в составе сложного то лучший вариант в (3)
|
|||
10
Sem0709
25.01.17
✎
09:28
|
(9) Не самостоятельный)
|
|||
11
Широкий
25.01.17
✎
09:28
|
(8) Я говорю вложенный запрос сразу по владельцу отсеки. Поле убирать не надо.
|
|||
12
Sem0709
25.01.17
✎
09:31
|
(11) Владелец - это поле соединения, а не параметр. Я просто не знал как ещё показать и не написал...
|
|||
13
Sem0709
25.01.17
✎
09:35
|
(6) 2. Прям в запросе, чтобы потом не перебирать ? Про это речь ?
|
|||
14
2dolist
25.01.17
✎
09:55
|
(3) так только одна запись будет, а ему нужен как бы срез последних
|
|||
15
2dolist
25.01.17
✎
09:56
|
(0) А если несколько документов на одну дату, нужно оба выводить или любой из них сойдёт?
|
|||
16
Sem0709
25.01.17
✎
10:34
|
(15) Однозначно один, только пока не знаю какой, пока случайный.
|
|||
17
d546
25.01.17
✎
10:38
|
(13) да в запросе
|
|||
18
d546
25.01.17
✎
10:42
|
(16) если не случайно, то надо признак приоритета во временной таблице организовывать (через ВЫБОР по типу документа), максимум по нему и связка по нему. если случайно, то лучше просто максимум(ДОКУМЕНТ) делай с группировкой по ИМЯ, ДАТА в запросе
|
|||
19
d546
25.01.17
✎
10:43
|
и в основной надо признак приоритета тоже для соединения
|
|||
20
Sem0709
25.01.17
✎
10:52
|
(19) Понял. Буду реализовывать. СпасибО!
|
|||
21
d546
25.01.17
✎
10:56
|
(20) попробуй, что-то вроде не домудрил :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |