Dynamiczne nazwy kolumn Oracle

0

Witam.

Szukałem informacji na temat dynamicznych nazw kolumn i niestety nie udało mi się nic znaleźć.

Mam pewne zapytanie które pokazuje mi zyski z ostatnich 3 miesięcy (zaczynając od poprzedniego i tak w dół). Mam w tej chwili nazwane je "Zysk Lut. 2018","Zysk Ma 2018" i tak dalej.

SUM(CASE WHEN copa."data utworzenia faktury" BETWEEN add_months(TRUNC(SYSDATE) , -3) 
     AND LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE , 'Month'),-3)) THEN copa.ZYSK ELSE 0 END) "Zysk Lu 2018",
 
SUM(CASE WHEN copa."data utworzenia faktury" BETWEEN add_months(TRUNC(SYSDATE) , -2) 
    AND LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE , 'Month'),-2))  THEN copa.ZYSK ELSE 0 END) "Zysk Ma 2018",

SUM(CASE WHEN copa."data utworzenia faktury" BETWEEN add_months(TRUNC(SYSDATE) , -1) 
    AND LAST_DAY(ADD_MONTHS(TRUNC(SYSDATE , 'Month'),-1))  THEN copa.ZYSK ELSE 0 END) "Zysk Kw 2018"

Chciałbym zapytać czy jest sposób aby kolumny nazywały się dynamicznie czyli nazwa "Zysk " || Miesiąc_pobierany.

1

Ale po co?

0

Bo ktoś będzie korzystał z mojego zapytania do wykonywania raportów i fajnie gdyby od razu wszystkie kolumny miały swoje nazwy które dotyczą konkretnych informacji.

0

... i co miesiąc będzie musiał zmieniać raport??? Bo nazwy kolumn się zmienią?

0

Nazwy kolumn powinny się zmieniać bo Dane będą przedstawione dla 3 ostatnich miesięcy.

Tak jak w tamtym miesiącu był robiony raport to nazwy kolumn są takie jak w pierwszym poście a w tym już kolumny powinny się nazywać.

"Zysk Marzec 2018"
"Zysk Kwiecień 2018"
"Zysk Maj 2018"

Miesiące mogą być po angielsku nie robi to za bardzo. Nazwy kolumn mają po prostu opisywać rzeczywistość czyli zysk z danych miesięcy i aby kolumny też tak się nazywały.

0

A nie możesz po prostu zastosować aliasów? Albo na froncie co miesiąc zmieniać nazw?

0

Może jako pierwszy wiersz danych wygeneruj 'dynamiczne' nazwy kolumn (doklej unionem). Wtedy wynik raportu zrzucasz (np. do excela) bez kolumn, ewentualnie wycinasz pierwszy wiersz.

0
wemibo napisał(a):

Może jako pierwszy wiersz danych wygeneruj 'dynamiczne' nazwy kolumn (doklej unionem). Wtedy wynik raportu zrzucasz (np. do excela) bez kolumn, ewentualnie wycinasz pierwszy wiersz.

To może być w sumie dobre rozwiązanie :)

Przetestuję. Dzięki.

kate87 napisał(a):

A nie możesz po prostu zastosować aliasów? Albo na froncie co miesiąc zmieniać nazw?

Przecież mam aliasy. Mogę zmieniać na froncie ale zawsze chodzi o to aby ułatwić sobie i innym pracę bo tych kolumn jest trochę więcej niż 3.

1

jedyne rozwiązanie to sklejanie SQLa i uruchamianie go poprzez EXECUTE IMMEDIATE

1 użytkowników online, w tym zalogowanych: 0, gości: 1