• 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?

VPS Starter Arubacloud
+1 głos
258 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,100 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,100 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,100 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 (251,210 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 695 wizyt
pytanie zadane 21 lipca 2018 w Java przez GulderBone Użytkownik (600 p.)
0 głosów
0 odpowiedzi 912 wizyt
0 głosów
2 odpowiedzi 167 wizyt
pytanie zadane 14 stycznia 2023 w SQL, bazy danych przez haitoke Nowicjusz (240 p.)

92,452 zapytań

141,262 odpowiedzi

319,080 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...