Wpis z mikrobloga

#sql #naukaprogramowania
elo to znowu ja xD, nauki ciąg dalszy. Mam zadanie: 3. Wszystkich tych, którzy w nazwisku posiadają literę „O” nagródź podwyżką płacy dodatkowej zwiększając ją o 14 %. Nie zapomnij o tych, którzy jej nie mają i daj im 150 zł bonusu. (niektórzy mają przy placydod null'a)
Z drugą częścią zadania zaraz sam będę sobie radził, moje pytanie brzmi jak zapisać tą pierwszą część bo jak dam:

select nazwisko, placa_dod * 1.14 from PRACOWNICY where nazwisko like '%o%'
to da mi ten wynik ale później nie będę mógł zapisać tej 2 części zadania. Kombinowałem inaczej:
SELECT nazwisko, ifnull(placa_dod,0) * 1.14 as placa_dodatkowa, ifnull(placa_dod,0)
from PRACOWNICY
where (ifnull(placa_dod,0) * 1.14 and nazwisko like '%o%')

ale wtedy wyświetlają mi się tylko ludzie z literami o w nazwisku którzy coś zarabiają w placydod, a chcę żeby wyświetlali mi się wszyscy i uwzględniało też tych którzy w placydod mają null. Jak to zapisać?
  • 11
@ugotowany_kamien: Mnie uczyli, że select służy do pobierania danych z tabeli, a nie do wprowadzania w nich zmian, więc nie może tam nic zmienić.
Zrób sobie mały test.

select nazwisko, placadod from PRACOWNICY where nazwisko like '%o%' -> sprawdź jaką wartość poda u konkretnego pracownika
select nazwisko, placa
dod * 1.14 from PRACOWNICY where nazwisko like '%o%' -> teraz poda wartość + 14%
select nazwisko, placa_dod from PRACOWNICY where nazwisko