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

0

Mam takie tabele :

 
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

0

(usr cross join category) left join expense

  • Coalesce

1 użytkowników online, w tym zalogowanych: 0, gości: 1