Мне нужна помощь с процессом, который я пытаюсь выполнить в pgAdmin 4. У меня есть таблица под названием «продажи».Атрибуты есть;saleId (первичный ключ), saleUnitprice (INT), saleQuantity (INT), saleTotal (INT), saleDate (DATE), prId (внешний ключ к таблице продуктов), spId (внешний ключ к таблице продавца)
Iу меня есть вторая таблица 'saletally', которую я собираюсь заполнить данными об общем объеме продаж в месяц на одного продавца.
SQL для получения итогов:
SELECT spid,
SUM(saletotal)
FROM public."sales"
WHERE EXTRACT(MONTH from saledate) = EXTRACT(MONTH from current_date)
GROUP BY spid;
Это возвращает числозаписи для каждого продавца и их общий объем продаж за этот месяц.Я пытаюсь выяснить, как поместить эту информацию в таблицу 'saleally'.
Я хочу закончить с
stID stTotal spID stMonth
------ --------- ------ ----------
st1 800 sp1 January
st2 900 sp2 January
st3 900 sp3 January
st4 950 sp1 February
st5 800 sp2 February
st6 950 sp3 February
Я не сделал ничего такого сложного в SQLдо и я думаю, что мне нужно сделать это как функцию в PostgreSQL.Основываясь на синтаксисе функции, вот что мне удалось до сих пор:
CREATE OR REPLACE FUNCTION totalSales ()
RETURNS integer AS $totalsales$
declare
stId_var varchar(4) := stId +1,
stTotal_var := SELECT SUM(saletotal) FROM public."sales" WHERE EXTRACT(MONTH from saledate) = EXTRACT(MONTH from current_date),
spId_var := SELECT spID FROM public.”sales”,
stMonth_var = EXRACT(MONTH from current_date);
BEGIN
Insert INTO public.”salestally”(stId, stTotal, spId, stMonth)
VALUES (stId_var, stTotal_var, spId_var, stMonth_var)
RETURN totalsales;
END;
$totalsales$ LANGUAGE plpgsql;
Я думаю, что где-то должен быть цикл.Я был бы признателен, если кто-то может помочь с этим или может указать мне направление хорошего учебника.Спасибо