powered by simpleCommunicator - 2.0.57     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Ухудшение интелекта ASA 10 (по сравнению с ASA7) при работе с агрегатами
3 сообщений из 3, страница 1 из 1
Ухудшение интелекта ASA 10 (по сравнению с ASA7) при работе с агрегатами
    #36929784
Корнелий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги,

при переходе с ASA 7 на ASA 10 (приложухи остались на PB7) c разочарованием обнаружил, что некоторые "сложносочинённые" SQL запросы перестали работать.
В частности теперь datawindow не обрабатывает запрос типа следующего:


SELECT "contracts"."contract_name",
(select sum(if e.currency = "contracts"."contract_currency" then e.amount_cpaym else e.amount_cpaym * 30 endif)
from events e where e.contract_id = contracts.contract_id ) as sum_paid
FROM "contracts"

выдаётся следующая ошибка

SQLSTATE= 3700
[Sybase][ODBC Driver][SQL Anywhere] Агрегатное выражение 'sum' содержит несколько столбцов, из которых один или более являются внешними ссылками

кто-то сталкивался? Как-то лечится?
Или надо смириться с частичной потерей "интеллекта" (в угоду большей "строгости") у новой версии СУБД и искать обходные пути решения подобных проблем.
...
Рейтинг: 0 / 0
Ухудшение интелекта ASA 10 (по сравнению с ASA7) при работе с агрегатами
    #36930163
Есть такое - они типа добавили анализ правильности запроса
Лечится переписыванием запроса

SELECT "contracts"."contract_name",
(select sum(if e.currency = "contracts"."contract_currency" then e.amount_cpaym else e.amount_cpaym * 30 endif)
from events e where e.contract_id = contracts.contract_id ) as sum_paid
FROM "contracts"

Примерно так должно заработать

SELECT "contracts"."contract_name",
(select sum(if e.currency = "c"."contract_currency" then e.amount_cpaym else e.amount_cpaym * 30 endif)
from events e, contracts c where e.contract_id = contracts.contract_id and c.contract_id= contracts.contract_id) as sum_paid
FROM "contracts"

Те ссылки на таблу внешнего запроса могут быть во внутреннем только во where

PS

Datawindow здесь ни причем - только ASA c 8 или 9 версии так
10 уже устарела...- 11 обкатана - 12 вышла недавно
Зачем на старую переходить??
...
Рейтинг: 0 / 0
Ухудшение интелекта ASA 10 (по сравнению с ASA7) при работе с агрегатами
    #37024671
Корнелий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, друг.

Ценный совет.

Почему переходим на 10-ку?
Что официально закупила компания в своё время, на то и переводим ПОКА.
Перейдём на 10-ку (решим проблему с совместимостью с 64-х разрядными ОС), там посмотрим...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Ухудшение интелекта ASA 10 (по сравнению с ASA7) при работе с агрегатами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]