Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
09.03.2013, 11:21
|
|||
|---|---|---|---|
Group by в запросе |
|||
|
#18+
Доброго времени суток! Столкнулся вот с какой задачей: Есть таблица (в данном случае курсор ‘oldcurskva’), надо сформировать новый курсор (‘curskva’) с теми же полями ну и построчно просуммировать два поля (plkuh,plpod) в новое поле spodsob. Количество полей в ‘curskva’ плавающее, но эти 2 поля есть всегда. Задача довольно простая, но все упирается в выражение для GROUP BY, потом “пихаю” его в макроподстановку, получаю следующее: * Формирую выражение для GROUP BY (не знаю, как по-другому) kolpoley=FCOUNT('oldcurskva') strokapolei='' FOR i=1 TO kolpoley strokapolei=strokapolei+ALLTRIM(STR(i)) IF i<>kolpoley strokapolei=strokapolei+',' ENDIF ENDFOR * SELECT uu.*,CAST(SUM(uu.plkuh+uu.plpod) AS Numeric(5,1)) AS spodsob ; FROM oldcurskva uu GROUP BY &strokapolei INTO CURSOR curskva READWRITE Самое интересное, если установить SET ENGINEBEHAVIOR 70, весь этот «макроподстановочный формирователь» не нужен. Но использование подобной установки (SET ENGINEBEHAVIOR …) крайне нежелательно. Да и без макроподстановок лучше обойтись. (В статье Владимира Максимова макроподстановки подвергаются жесткой критике, в целом я с ним согласен.) Есть ли более изящное решение данной проблемы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2013, 15:34
|
|||
|---|---|---|---|
Group by в запросе |
|||
|
#18+
По-хорошему надо просто перечислить поля вместо макроподстановки. Код: sql 1. 2. И не изобретать велосипед с квадратными колесами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
09.03.2013, 15:44
|
|||
|---|---|---|---|
Group by в запросе |
|||
|
#18+
Pulsar_pЕсть таблица (в данном случае курсор ‘oldcurskva’), надо сформировать новый курсор (‘curskva’) с теми же полями ну и построчно просуммировать два поля (plkuh,plpod) в новое поле spodsob. Если задача стоит именно так, то зачем вообще GROUP BY ? Суммирование двух полей одной записи это "+" а не SUM() Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1583126]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
133ms |
get topic data: |
8ms |
get forum data: |
5ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 458ms |

| 0 / 0 |
