Я выбирающих данные из представления с помощью следующего запросаOracle, ORDER BY с результатами просмотра ошибочными
SELECT * FROM "SCH"."MyView"
Если добавить ORDER BY
SELECT * FROM "SCH"."MyView"
ORDER BY Name
я получаю следующее сообщение об ошибке
[Err] ORA-00979: not a GROUP BY expression
Является ли механизм запросов Oracle переводить это на недопустимый запрос? Как можно начать устранение подобных проблем?
Вот упрощение "SCH". "MyView"
SELECT
Name,
(subquery) AS Foo,
(subquery) AS Bar
FROM
"SCH"."AnotherView"
GROUP BY
Name
Если я удалить подзапросов, можно использовать ORDER BY без ErrorMessages. Подзапросов являются следующие:
(SELECT f.UnitPrice FROM "SCH"."AnotherView" f WHERE f.Name = main.Name AND f.Category = 'x' AND rownum < 2) AS priceX
(SELECT b.UnitPrice FROM "SCH"."AnotherView" b WHERE b.Name = main.Name AND b.Category = 'y' AND rownum < 2) AS priceY
Edit:, если добавить "ГДЕ ROWNUM < 9999999", я избавлюсь от этой ошибки. Мы запускаем версию 10.2.0.4.0 64 бит.
Вы также можете опубликовать определение вида? (если он не слишком большой) – mindandmedia
Что в MyView? Скорее всего, ваш MyView использует GROUP BY внутри. –
всегда имеют правильные 'теги' –