I like to wrap sum() in a coalesce() to handle the case where no records are selected. In that case, sum() returns null. Coalesce allows me to map that null to a 0 or other appropriate value so I don't have to process a null indicator variable.
Mark Murphy
STAR BASE Consulting, Inc.
mmurphy@xxxxxxxxxxxxxxx
-----Darren Strong <darren@xxxxxxxxx> wrote: -----
To: "RPG programming on the IBM i \(AS/400 and iSeries\)" <rpg400-l@xxxxxxxxxxxx>
From: Darren Strong <darren@xxxxxxxxx>
Date: 04/25/2016 01:16PM
Subject: Re: Embedded SQL Question
Yes, CASE is the correct way to handle this:
select sum(case when QTY=0 then HOURS else HOURS*QTY end)
from file
From: Eric Hill <ehill@xxxxxxxxxxxxx>
To: "rpg400-l@xxxxxxxxxxxx" <rpg400-l@xxxxxxxxxxxx>
Date: 04/25/2016 01:11 PM
Subject: Embedded SQL Question
Sent by: "RPG400-L" <rpg400-l-bounces@xxxxxxxxxxxx>
I need to condition a SUM in an embedded SQL statement where we have an
HOURS field and a QTY field in the file. If the QTY field is great than
zero I need to SUM based on the HOURS * QTY. If the QTY field is zero then
I need to SUM just the HOURS field. I'm not sure how to code this. I've
seen CASE but not sure if this is the place for this or even how to code it
correctly.
Any help would be greatly appreciated.
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L)
mailing list
To post a message email: RPG400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at
http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related questions.
As an Amazon Associate we earn from qualifying purchases.