• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SQL - Jak wykonywać obliczenia na aliasach?

Object Storage Arubacloud
+1 głos
268 wizyt
pytanie zadane 22 października 2021 w SQL, bazy danych przez p4wix Obywatel (1,040 p.)

Cześć, mierzę się z zadaniem z baz danych. Mianowicie mam wyświetlić kolumny z kapitalizacją i procentem składanym matematyczne jest ok. Problem pojawia się kiedy chce użyć aliasa zadeklarowanego wcześniej aby nie powtarzać kodu. Czy ktoś ma pomysł w jaki sposób to rozwiązać i czy to jest możliwe? z góry dzięki 

Korzystam z SQL, działam na bazie Oracle 

SELECT 
    NAZWISKO,
    placa_pod,
    (placa_pod * 0.2) AS INWESTYCJA,
    (INWESTYCJA * POWER((1 + (0.1 / 100 * 1)), 1 * 10)) AS KAPITAL,
    (KAPITAL - INWESTYCJA) AS ZYSK
FROM PRACOWNICY;

Trochę poczytałem i próbowałem wersje

SELECT 
    NAZWISKO,
    placa_pod,
    (placa_pod * 0.2) AS INWESTYCJA,
    (SELECT INWESTYCJA * POWER((1 + (0.1 / 100 * 1)), 1 * 10)) AS KAPITAL,
    (SELECT KAPITAL - SELECT INWESTYCJA) AS ZYSK
FROM PRACOWNICY;

błąd to: ORA-00923: nie znaleziono słowa kluczowego FROM w oczekiwanym miejscu

komentarz 22 października 2021 przez adrian17 Ekspert (344,860 p.)
Niezbyt rozumiem problem. Górne zapytania działa? Jak tak, to nie rozumiem co w zasadzie chcesz w nim zmienić.
komentarz 22 października 2021 przez p4wix Obywatel (1,040 p.)

nie działa ani jedno ani drugie, według mnie to powinno działać podobnie jak zmienne żeby nie powtarzać bo mogę zrobić tak i to zadziała. Jednak dlatego pytanie czy da radę może żeby to zadziałało używając do tego aliasów, wydaje mi się to bardziej intuicyjne 

SELECT 
    NAZWISKO,
    PLACA_POD,
    (placa_pod * 0.2) AS INWESTYCJA,
    (placa_pod * 0.2 * POWER((1 + (10 / 100)), 1 * 10)) AS KAPITAL,
    ((placa_pod * 0.2 * POWER((1 + (10 / 100)), 1 * 10)) - placa_pod * 0.2) AS ZYSK
FROM PRACOWNICY;

 

komentarz 22 października 2021 przez adrian17 Ekspert (344,860 p.)
OK, a w tym pierwszym co nie działa? Bo wygląda rozsądnie (a drugie ani trochę).
komentarz 22 października 2021 przez p4wix Obywatel (1,040 p.)
w pierwszym wyskakuje

ORA-00904: "INWESTYCJA": niepoprawny identyfikator

czyli pewnie nie jest w stanie odczytać INWESTYCJI w 5 linijce

w drugim sugerowałem się odpowiedzą 'zessx'

https://stackoverflow.com/questions/2077475/using-an-alias-in-sql-calculations

jednak również nie zadziałało
komentarz 22 października 2021 przez adrian17 Ekspert (344,860 p.)

Hm... to drugie to prędzej

    (SELECT INWESTYCJA) * POWER((1 + (0.1 / 100 * 1)), 1 * 10) AS KAPITAL,
    (SELECT KAPITAL) - (SELECT INWESTYCJA) AS ZYSK

Powinno zadziałać w mysqlu, ale nie wiem jak w oracle'u.

komentarz 22 października 2021 przez p4wix Obywatel (1,040 p.)
właśnie w oracle nie działa w tym problem :(
komentarz 23 października 2021 przez VBService Ekspert (253,340 p.)
edycja 23 października 2021 przez VBService

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 749 wizyt
pytanie zadane 21 lipca 2018 w Java przez GulderBone Użytkownik (600 p.)
0 głosów
0 odpowiedzi 933 wizyt
0 głosów
2 odpowiedzi 176 wizyt
pytanie zadane 14 stycznia 2023 w SQL, bazy danych przez haitoke Nowicjusz (240 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...