|
Выбрать последний документ(ы) на дату | ☑ | ||
---|---|---|---|---|
0
AlecoZAV
05.10.11
✎
10:51
|
Сделал запрос
ВЫБРАТЬ | УслугиДок.Ссылка |ИЗ | Документ.Услуги КАК УслугиДок |ГДЕ | УслугиДок.Дата <= &Дата | И УслугиДок.Кабинет = &Кабинет | |СГРУППИРОВАТЬ ПО | УслугиДок.Ссылка | |ИМЕЮЩИЕ | УслугиДок.Дата = МАКСИМУМ(УслугиДок.Дата) а он выбирает все документы за все даты. Как сделать чтоб он выбирал только последний документ, или документы, если дата время полностью совпадает |
|||
1
Повелитель
05.10.11
✎
10:52
|
Выбрать Первые 1
И сортировку по дате а это |ИМЕЮЩИЕ | УслугиДок.Дата = МАКСИМУМ(УслугиДок.Дата) не надо |
|||
2
PR
05.10.11
✎
10:52
|
МоментВремени
|
|||
3
AlecoZAV
05.10.11
✎
10:53
|
Первые 1 нельзя, может быть два документа с одним датой-временем
|
|||
4
AlecoZAV
05.10.11
✎
10:53
|
(2) поясни
|
|||
5
Amiralnar
05.10.11
✎
10:54
|
(3) А зачем они нужны?
|
|||
6
AlecoZAV
05.10.11
✎
10:55
|
(5) с образовательной точки зрения, задача виртуальная
|
|||
7
sda553
05.10.11
✎
11:08
|
Выбрать первые 1 Максимум(УслугиДок.Ссылка) Как ПоследнийДокСсылка
Из Документ.Услуги КАК УслугиДок Где (УслугиДок.Дата) В ( ВЫБРАТЬ | Максимум(УслугиДок.Дата) ДатаДок |ИЗ | Документ.Услуги КАК УслугиДок |ГДЕ | УслугиДок.Дата <= &Дата | И УслугиДок.Кабинет = &Кабинет ) ТабСреза И УслугиДок.Кабинет = &Кабинет |
|||
8
AlecoZAV
05.10.11
✎
11:12
|
(7) НЕЛЬЗЯ первые 1
|
|||
9
sda553
05.10.11
✎
11:12
|
(8) Можно, я разрешаю
|
|||
10
Amiralnar
05.10.11
✎
11:13
|
(9) нет, там первые 1 не надо. но без них работает првильно.
|
|||
11
Amiralnar
05.10.11
✎
11:14
|
(6) В условии подзапрос на максимальную дату.
|
|||
12
sda553
05.10.11
✎
11:14
|
(10) Если задача поставлена так, что если последних документов несколько с одинаковой датой, то надо вернуть несколько - тогда ПЕРВЫЕ 1 не надо.
А если гарантированно надо получить один самый последний документ, то надо |
|||
13
sda553
05.10.11
✎
11:15
|
а..ну да первые 1 не надо, у меня же максимум, гоню
|
|||
14
Amiralnar
05.10.11
✎
11:16
|
Я не пробовал, а по МоментВремени сортировать можно?
|
|||
15
sda553
05.10.11
✎
11:17
|
момент времени это ДатаДок+Ссылка, так что сортировка вида
УПОРЯДОЧИТЬ ПО Док.Дата,Док.Ссылка и есть сортировка по моменту времени |
|||
16
unregistered
05.10.11
✎
11:17
|
(15) +100500
так что ПЕРВЫЕ 1 вполне допустимы. |
|||
17
sda553
05.10.11
✎
11:18
|
(16) Нет, в моем запросе ПЕРВЫЕ 1 не нужны т.к. запрос выбирает Максимум и он в любом случае только 1 строчку или 0 строчек результата возвращает
|
|||
18
unregistered
05.10.11
✎
11:21
|
(17) Я не про твой запрос. Проще использовать вариант (1) - обычная выборка без группировок и вложенных запросов с упорядочивание по Дата+Ссылка.
|
|||
19
AlecoZAV
05.10.11
✎
11:25
|
(7) попробовал, есть два документа, совпадают дата и время, но в выборку попал один
|
|||
20
SeregaMW
05.10.11
✎
11:27
|
Сначало найди последний документ потом по дате и времени найди ему соответствующие!
|
|||
21
AlecoZAV
05.10.11
✎
11:36
|
(20) а одним запросом?
|
|||
22
sda553
05.10.11
✎
11:37
|
(19) см. (12) если тебе нужны эти несколько документов то
Выбрать УслугиДок.Ссылка Как ПоследнийДокСсылка Из Документ.Услуги КАК УслугиДок Где (УслугиДок.Дата) В ( ВЫБРАТЬ | Максимум(УслугиДок.Дата) ДатаДок |ИЗ | Документ.Услуги КАК УслугиДок |ГДЕ | УслугиДок.Дата <= &Дата | И УслугиДок.Кабинет = &Кабинет ) И УслугиДок.Кабинет = &Кабинет |
|||
23
sda553
05.10.11
✎
11:38
|
(18) У него задача несколько другая, неизвестно заранее один там будет документ или два и ему надо чтобы запрос вернул несколько последних документов с одной датой
|
|||
24
AlecoZAV
05.10.11
✎
11:43
|
(22) получилось, огромное спасибо\
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |