On Tuesday 26 March 2002 19:22, John Oakes wrote:
> I have a table with a column that contains fail codes. These codes are
> 1-9. I need to get a count of each of the codes. Right now I have separate
> queries:
>
> select count(*) from tablename
> where failcode = '1';
>
> If I use GROUP BY it obviously doesn't get the count for codes that don't
> exist. I need to have 0 returned though so I have a listing of all 9 fail
> codes and their total, even if it is zero. I tried UNION like this:
>
> select count(*) from tablename
> where failcode = '1';
> UNION
> select count(*) from tablename
> where failcode = '2';
>
> etc, but it too excludes the codes that have a count of zero. Right now I
> have resorted to using 9 separate queries. Is there a way to do this with
> one? Thank you!
If you have a seperate table containing all possible fail codes you can do
something like this:
select fc.failcode, count(tn.failcode)
from failcode_table fc
left join tablename tn
on tn.failcode=fc.failcode
group by fc.failcode
Ian Barwick