Проблема Oracle PIVOT (в результате столбцы NULL сводные) - PullRequest
2 голосов
/ 23 ноября 2011

У меня странная проблема с Oracle, пока я пытаюсь сделать PIVOT.По сути, он возвращает NULL для всех поворотных столбцов, в то время как он не должен

WITH 
    "Customer" AS (
        SELECT * FROM "doCustomer" WHERE __some_conditions_here__
    )
SELECT 
    *
FROM
    "Customer"
PIVOT (
    MIN("ChargeCommission")   AS "ChargeCommission"
    FOR ("Index") IN (
        01 AS C01, 02 AS C02, 03 AS C03, 04 AS C04, 05 AS C05, 06 AS C06, 07 AS C07, 08 AS C08, 09 AS C09, 10 AS C10,
        11 AS C11, 12 AS C12, 13 AS C13, 14 AS C14, 15 AS C15, 16 AS C16, 17 AS C17, 18 AS C18, 19 AS C19, 20 AS C20
    )
)

«Клиент» всегда возвращать не нулевые данные, поэтому это не проблема с данными.Но результат всего запроса зависит от того, что я ввожу в some_conditions_here.Я нашел зависимость - меньше данных в «Заказчике» -> меньше нулей.Я знаю, что могу переписать этот запрос таким образом, чтобы он использовал decode / group by, но мне просто любопытно, почему он так себя ведет.Версия Oracle 11g.

1 Ответ

0 голосов
/ 21 декабря 2011
<FOR ("Index") IN (
    01 AS C01, 02 AS C02, 03 AS C03, 04 AS C04, 05 AS C05, 06 AS C06, 07 AS C07, 08 AS C08, 09 AS C09, 10 AS C10,
    11 AS C11, 12 AS C12, 13 AS C13, 14 AS C14, 15 AS C15, 16 AS C16, 17 AS C17, 18 AS C18, 19 AS C19, 20 AS C20
)>

Попробуйте это, не используя псевдонимы ... это должно работать

...