Złożone select z grupowaniem - dodawanie 0/null jeśli wartość nie istnieje

Złożone select z grupowaniem - dodawanie 0/null jeśli wartość nie istnieje
S9
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa
  • Postów: 3573
0

Mam takie tabele :

Kopiuj
 
create table usr(
	id serial primary key,
	user_name varchar(15) unique not null,
	pass_word varchar(100) not null,
	email varchar(150) unique not null,
	enabled boolean not null
);

create table category(
	id serial primary key,
	category varchar(100) unique not null
);

create table expense(
	id serial primary key,
	expense_date date not null,
	amount decimal(10,2) not null,
	comment text,
	user_id integer not null,
	category_id integer not null,
	payment_method_id integer not null,
	payee_id integer,
	constraint fk_user foreign key(user_id) references usr(id),
	constraint fk_category foreign key(category_id) references category(id),
	constraint fk_payment_method foreign key (payment_method_id) references payment_method,
	constraint fk_payee foreign key (payee_id) references payee(id),
	check (amount>=0)
);

Jak zrobić selekta który wybierze sume wydatków po kategorii między danymi datami i wstawi 0 jeśli dany user nie miał wydatków w danej kategorii?
Dodam że korzystam z postgresa

Marcin.Miga
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2794
0

(usr cross join category) left join expense

  • Coalesce

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.