I'm quite new to pl/pgsql and I have one issue: I'm trying to create function that will calculate tax based on pensja in:
create table pracownicy (
id_pracownika int unique
, imie varchar(20)
, nazwisko varchar(20)
, miasto varchar(20)
, pensja real);
insert into pracownicy values
(1, 'John', 'Smith', 'New York', 150)
, (2, 'Ben', 'Johnson', 'New York', 250)
, (3, 'Louis', 'Armstrong', 'New Orleans', 75)
, (4, 'John', 'Lennon', 'London', 300)
, (5, 'Peter', 'Gabriel', 'London', 100);
I've created function:
CREATE OR REPLACE FUNCTION pit(pensja real)
RETURNS real AS
$BODY$
DECLARE
dochod REAL;
podatek REAL;
BEGIN
dochod = 12*pensja;
IF dochod <= 85528 THEN
podatek = dochod*0,18-556,02;
RETURN podatek;
ELSE
podatek = 14839 + 0,32*(dochod - 85528);
RETURN podatek;
END IF;
END;
$BODY$
LANGUAGE plpgsql;
I'm trying to run it with:
select nazwisko, pensja, pit(pensja) from pracownicy;
Receiving:
ERROR: query "SELECT * dochod 0,18-556,02" returned 3 columns SQL state: 42601 Context: function PL / pgSQL pit (real), line 8 in the assignment
And I'm not quite sure where the error is?