here is your solution using subqueries --
Code:
select company_name as CompName
, company_vatreg as CompVatReg
, user_name as UserName
, ( select sum(expense_amount)
from expenses
where expense_user_id
= user_id ) as ExpTotalToDate
, ( select sum(invoice_payrate
* invoice_hours)
from invoices
where invoice_user_id
= user_id ) as InvTotalToDate
from users
inner
join companies
on user_company_id
= company_id
order
by company_name
and here it is using derived tables --
Code:
select company_name as CompName
, company_vatreg as CompVatReg
, user_name as UserName
, dt1.ExpTotalToDate
, dt2.InvTotalToDate
from users
inner
join companies
on user_company_id
= company_id
left outer
join (
select user_id
, sum(expense_amount) as ExpTotalToDate
from expenses
group
by user_id
) as dt1
on expense_user_id
= dt1.user_id
left outer
join (
select user_id
, sum(invoice_payrate
* invoice_hours) as InvTotalToDate
from invoices
group
by user_id
) as dt2
on invoice_user_id
= dt2.user_id
order
by company_name
Bookmarks