максимальное значение всех строк одним запросом | |
---|---|
ventall Автор Сообщений: 132 Дата регистрации: 29.11.2013 |
Доброго времени суток! столкнулся казалось бы с легкой задачей. но что то пошло не так)
есть таблица кол1 кол2 кол3 кол4 кол5 1 2 3 4 5 как селектом выбрать максимальное значение в новую колонку макс_1 этой же таблицы делаю в командной строке ?max(кол1, кол2, кол3, кол4, кол5) - отображает 5, а в селекте ругается на синтаксис, понимаю что можно выбирать макс 1значение целой 1 колонки. что я делаю не так(( Исправлено 1 раз(а). Последнее : ventall, 03.09.19 21:54 |
Re: максимальное значение всех строк одним запросом | |
---|---|
ventall Автор Сообщений: 132 Дата регистрации: 29.11.2013 |
сделал курсор readwrite и с помощью replace сделал то что хотел, но все таки есть варианты как сделать по человечески, а не так как я?
|
Re: максимальное значение всех строк одним запросом | |
---|---|
Taran Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ты бы свой select показал.
|
Re: максимальное значение всех строк одним запросом | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
"сделай сам, будь мужиком" )
|
Re: максимальное значение всех строк одним запросом | |
---|---|
ventall Автор Сообщений: 132 Дата регистрации: 29.11.2013 |
select tabl.*, max(tabl.col1, tabl.col2, tabl.col3, tabl.col4) as max_col from tabl into cursor tabl
только так синтаксис не проходит |
Re: максимальное значение всех строк одним запросом | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
max(списо много полей) - так не умеет движок... Можно подумать почему
|
Re: максимальное значение всех строк одним запросом | |
---|---|
ventall Автор Сообщений: 132 Дата регистрации: 29.11.2013 |
удалось вот так
select tabl.*, 0.000 as max_col from tabl into cursor tabl readwrite replace max_col with max(tabl.col1, tabl.col2, tabl.col3, tabl.col4) for tabl.kod >0 всем спасибо за ответы |
Re: максимальное значение всех строк одним запросом | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> with max(tabl.col1, tabl.col2, tabl.col3, tabl.col4) for tabl.kod >0
Своеобразно... И задача интересная кол1 кол2 кол3 кол4 кол5 1 2 3 4 5 как селектом выбрать максимальное значение в новую колонку макс_1 этой же таблицы Это 1й курс института? Исправлено 1 раз(а). Последнее : of63, 03.09.19 23:06 |
Re: максимальное значение всех строк одним запросом | |
---|---|
ventall Автор Сообщений: 132 Дата регистрации: 29.11.2013 |
нет, есть продажи и заказы, для которых печатают 4 отчета за 4 периода и на калькуляторе все считают, по максимальному значению и делают заказ. я еще простенькое что то могу, а с таким не сталкивался. решил сделать такой сводный отчет, чтобы все периоды были и предворительный заказ на 1 листе
|
Re: максимальное значение всех строк одним запросом | |
---|---|
leonid Сообщений: 3202 Откуда: Рига Дата регистрации: 03.02.2006 |
А так?
|
Re: максимальное значение всех строк одним запросом | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
() Обычно, они хотят видеть инфу "в разных разрезах", типа в в 4-5-6 мериях, надеясь, что это не просто красивые проекции на 2-мерные графики.
Исправлено 1 раз(а). Последнее : of63, 04.09.19 00:18 |
Re: максимальное значение всех строк одним запросом | |
---|---|
AndyNigmatec Сообщений: 1552 Откуда: Волгоград Дата регистрации: 28.06.2015 |
Как вариант (поскоку это чистый фокс как я понимаю) нарисовать тупо UDF ... ну типа
|
Re: максимальное значение всех строк одним запросом | |
---|---|
ventall Автор Сообщений: 132 Дата регистрации: 29.11.2013 |
select tabl.*, max[tabl.col1, tabl.col2, tabl.col3, tabl.col4] as max_col from tabl into cursor tabl
работает!не знал про квадратные скобки немного не понимаю обьяснения в хелпе MAX(eExpression1, eExpression2 [, eExpression3 ...]) тут они есть вконце, ну я подумал что там может просто продолжение полей типа 3, 4, 5, и т. д . |
Re: максимальное значение всех строк одним запросом | |
---|---|
vnkor Сообщений: 324 Дата регистрации: 04.10.2007 |
Не забудьте про кол5
select tabl.*, max[tabl.col1, tabl.col2, tabl.col3, tabl.col4, tabl.col5] as max_col from tabl into cursor tabl |
Re: максимальное значение всех строк одним запросом | |
---|---|
ventall Автор Сообщений: 132 Дата регистрации: 29.11.2013 |
спасибо, не забыл
но вопрос остается, почему max(список много полей) - так не умеет движок, выбирает только 1 строку и то не селектом [] а так умеет Исправлено 2 раз(а). Последнее : ventall, 04.09.19 10:05 |
Re: максимальное значение всех строк одним запросом | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Я на часть вопроса могу ответить. Дело в том, что есть две модификации функции MAX. Первая это функция встроенного языка MAX(eExpression1, eExpression2 [, eExpression3 ...]) А вторая это аггрегатная функция запроса SELECT - SQL. По-умолчанию, в запросе, SELECT пытается использовать именно вторую (аггрегатную) функцию MAX. А вот ответить, почему квадратные скобки говорят команде SELECT использовать функцию встроенного языка, я не могу. Наверняка есть указание на такое поведение в хелпе, но я лично только на форуме видел упоминание об этом. Исправлено 1 раз(а). Последнее : pasha_usue, 04.09.19 10:21 |
Re: максимальное значение всех строк одним запросом | |
---|---|
akvvohinc Сообщений: 4203 Откуда: Москва Дата регистрации: 11.11.2008 |
Потому что при вызове встроенных функций можно использовать любые скобки - и круглые, и квадратные - компилятор строит один и тот же код (это касается любого их использования, а не только в SELECT SQL). А при использовании агрегатных - можно использовать только круглые скобки. Встречая в команде SELECT SQL круглые скобки у тех функций, которые могут быть как встроенными, так и агрегатными, приоритет отдается последним. Ну, а квадратные скобки "конкурентов" не имеют - они могут использоваться только для встроенных функций. Исправлено 1 раз(а). Последнее : akvvohinc, 08.09.19 01:06 |
Re: максимальное значение всех строк одним запросом | |
---|---|
LED Сообщений: 204 Дата регистрации: 22.07.2006 |
Интересная тема. Увидел команду
Если есть не документированные понятия, то можно ли сделать так:
т.е. записать изменения одновременно при создании курсора. Не хочется потом применять UPFATE, scan и т.д. Исправлено 1 раз(а). Последнее : LED, 17.09.19 13:54 |
Re: максимальное значение всех строк одним запросом | |
---|---|
ssa Сообщений: 12999 Откуда: Москва Дата регистрации: 23.03.2005 |
Мечтать не вредно. В фоксе нет разделителя команд кроме новой строки и потому несколько команд в одной строке невозможны.
А написанную вами гипотетическую строку кода можно заменить вполне реальной. Надо только думать над тем как получить нужный результат выборки, а не как этот результат поменять после его перекидывания в другую таблицу. ------------------ Лень - это неосознанная мудрость. |
Re: максимальное значение всех строк одним запросом | |
---|---|
LED Сообщений: 204 Дата регистрации: 22.07.2006 |
Я указал только одну таблицу и действия именно в одной таблице. А насчет мечтать не вредно, это еще понять надо...
Значит нельзя, а жаль... Многое можно было бы решить. |
© 2000-2024 Fox Club  |