15.02.2007, 11:30 | #1 |
Участник
|
максимальная дата
Пытаюсь вытащить запись из таблицы с самой последней датой?
Но таблица пустая select ADOQty,CalculationDate ,InventLocationId from adoData where adoData.ItemId == inventSum.ItemId && adoData.InventLocationId == baseLocationId && adoData.CalculationDate == maxdate(); или просто сортировать в убывающем порядке? Последний раз редактировалось fialka; 15.02.2007 в 11:42. Причина: неполное сообщение |
|
15.02.2007, 11:42 | #2 |
Axapta
|
вы уверены, что у Вас в таблице есть поле с CalculationDate == 31.12.2153?
X++: select ADOQty, CalculationDate ,InventLocationId from adoData order by CalculationDate desc where adoData.ItemId == inventSum.ItemId && adoData.InventLocationId == baseLocationId |
|
15.02.2007, 11:47 | #3 |
Участник
|
так и сделала... но всё ранво спасибо
|
|
15.02.2007, 11:48 | #4 |
Участник
|
|
|
15.02.2007, 11:48 | #5 |
Участник
|
maxdate() - это функция, возвращающая максимально возможную дату системы
лучше сделать X++: select firstonly ADOQty,CalculationDate ,InventLocationId from adoData order by CalculationDate desc where adoData.ItemId == inventSum.ItemId && adoData.InventLocationId == baseLocationId; Упс уже ответили |
|
15.02.2007, 12:20 | #6 |
Злыдни
|
А можно использовать в select ... maxof(CalculationDate)
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
15.02.2007, 12:27 | #7 |
Участник
|
|
|
15.02.2007, 12:32 | #8 |
Злыдни
|
Конечно, должна работать нормально.. Вот только сортировка не всегда быстрее выборки по условию. Надо бы посмотреть план запроса
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
15.02.2007, 13:16 | #9 |
Участник
|
оффтопик: а если бы была функция maxtime(), то мы бы узнали недокументированную особенность, что максимальное время, которое можно перевести в формат "hh:mm:ss" функцией time2str() - это почему-то 24 ч 59 мин 59 сек. Совершенно необъяснимое ограничение.
|
|
15.02.2007, 15:29 | #10 |
Участник
|
Думаю, объясняется все очень просто: time2str() проверяет допустимые диапазоны часов/минут/секунд независимо друг от друга, считая при это 24 часа допустимым значением.
|
|
15.02.2007, 16:30 | #11 |
Участник
|
|
|
15.02.2007, 17:07 | #12 |
Участник
|
Агрегирвание - по сути объединение, может быть и несколько записей... Зная по какому принципу нам нужна группировка получаем нужный курсор (добавляя в запрос group by и дополнительные условия).
|
|
15.02.2007, 17:19 | #13 |
Участник
|
Цитата:
К тому же насчет group by - это не менее затратно с точки зрения производительности, чем order by, зато с order by, никаких доп. телодвижений не нужно |
|
15.02.2007, 17:28 | #14 |
Участник
|
Цитата:
Да. Или (если запись будет только одна(!)) делать дополнительный запрос, что, как мне кажется, не есть хорошо.... |
|
16.02.2007, 15:21 | #15 |
Участник
|
Тем не менее, совершенно ненужное ограничение. Мне потребовалось измерить диапазон между двумя временами, которые могут быть в разных датах - и тут выясняется, что вывести временную разницу "25ч 30мин" в виде "25:30" стандартным средством нельзя.
|
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|