2012-02-28 2 views
0

Я выбирающих данные из представления с помощью следующего запроса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 бит.

+1

Вы также можете опубликовать определение вида? (если он не слишком большой) – mindandmedia

+1

Что в MyView? Скорее всего, ваш MyView использует GROUP BY внутри. –

+0

всегда имеют правильные 'теги' –

ответ

0

Может быть, вы пытались выполнить SELECT заявление, которое включало GROUP BY функцию (то есть: MIN, MAX, SUM, COUNT) и выражение в списке SELECT, который не был в пункте GROUP BY.

 Смежные вопросы

  • Нет связанных вопросов^_^