| From: | Tomasz Myrta <jasiek(at)klaster(dot)net> |
|---|---|
| To: | Shaun Watts <SWatts(at)computer-systems(dot)com> |
| Cc: | pgsql-sql(at)postgresql(dot)org |
| Subject: | Re: selecting problems |
| Date: | 2003-10-31 19:53:12 |
| Message-ID: | 3FA2BDA8.60007@klaster.net |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-sql |
Dnia 2003-10-31 20:19, Użytkownik Shaun Watts napisał:
> What I am trying to do is select all the rows out of the categories
> table (see below) and select the sum of j_amount out of the judgment
> table. Right now it is only returning the categories that are in the
> judgment table. I want it to return those fields with the amounts out
> of the judgment table, but also the all the other categories from the
> categories table with 0 as there amount. Does anyone have a
> suggestion.
>
> select ca_code,ca_desc,sum(j_amount) as sum_amt,ca_dis_cycle
> from categories LEFT OUTER JOIN judgment ON
> (j_category=ca_code)
> where j_case_no='45698'
> and j_party_no=1
> group by ca_code,ca_desc,ca_dis_cycle
>
> Thanks,
> Shaun
This left join won't work. Where clause changes your left join into
inner one.
select ca_code,ca_desc,sum(j_amount) as sum_amt,ca_dis_cycle
from categories LEFT OUTER JOIN judgment ON
(j_category=ca_code and j_case_no='45698' and j_party_no=1)
group by ca_code,ca_desc,ca_dis_cycle
or
select ca_code,ca_desc,sum(j_amount) as sum_amt,ca_dis_cycle
from categories LEFT OUTER JOIN judgment ON (j_category=ca_code)
where (j_case_no='45698' and j_party_no=1) or j_category is null
group by ca_code,ca_desc,ca_dis_cycle
Probably you also need to change your sum(j_amount) into:
sum(case when j_amount is null then 0 else j_amount end)
Regards,
Tomasz Myrta
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Marcus Krause | 2003-11-01 11:00:16 | No output while using PEAR DB & formatted time-string |
| Previous Message | Shaun Watts | 2003-10-31 19:19:49 | selecting problems |