On Thu, 08 Sep 2005 16:24:14 -0400, "D. Richard Hipp" <[EMAIL PROTECTED]> wrote:
> Can somebody come up with a realistic scenario where they would
> actually want SUM() to return NULL instead of 0?  NULL is such
> a profoundly broken return value for sum() in my mind that I'm
> thinking of ignoring the standard and just coding SQLite to do
> the Right Thing.  But I am open to the possibility that there
> are some cases outside of my imagination where returning zero 
> might be considered "wrong".

Isn't the meaning of 0 part of the application logic?  If you really are
going to do it, can there be a pragma to switch the behaviour?


> If nobody can suggest a scenario where SUM() returning NULL is
> actually helpful, then I will likely return SQLite to its former
> mode of operation which is to have SUM() return 0 when it has no
> input.


What about when the sum is on a field in a left joined table?  

create table items 
  (item_code char(10), description varchar(30));
  
insert into items values('WIDGETS','WIDGET 3.5 inch');
insert into items values('BOXES','Box 2 inch');
insert into items values('ETCHA','Etch-a-sketch');

create table transactions 
   (item_code char(10), 
    customer_code char(10), 
    purchase_date date,
    amt numeric);
    
-- customer buys widget
    
insert into transactions('WIDGETS','CASH','20050905',11.00);

-- customer brings widget back
insert into transactions('WIDGETS','CASH','20050907,'-11.00);

-- customer from last month brings box back
insert into transactions('BOXES','CASH','20050907,'-20.00);

-- monthly profitiblity report

select items.item_code, 
       sum(transactions.amt), count (transactions.item_code)
>from items
left outer join transactions on transactions.item_code = items.item_code
where date >= '20050901' and date <= '20050930'
order by 3 desc, 4 desc

I want the result to be descending money, then descending counts, with
no activity items at the end.

klint.

+---------------------------------------+-----------------+
: Klint Gore                            : "Non rhyming    :
: EMail   : [EMAIL PROTECTED]           :  slang - the    :
: Snail   : A.B.R.I.                    :  possibilities  :
: Mail      University of New England   :  are useless"   :
:           Armidale NSW 2351 Australia :     L.J.J.      :
: Fax     : +61 2 6772 5376             :                 :
+---------------------------------------+-----------------+

Reply via email to