First, regarding the stored procedure recommendation, it depends on what you are trying to do. The decision to go with a stored procedure vs a view depends on how this fits into the rest of your application.
Here is what I would do for the SQL though:
WITH base_agg AS (
select part_no,
sum(cast when trans_type='REC' then trans_qty else 0) as "received",
sum(cast when trans_type='ALL' then trans_qty else 0) as "allocated",
sum(cast when trans_type='SHP' then trans_qty else 0) as "shipped"
from inventory_transaction_table
group by part_no
)
SELECT shipped, allocated, received - allocated - shipped as on_hand from base_agg;
On Mon, Sep 23, 2013 at 11:01 PM, John R Pierce <pierce@xxxxxxxxxxxx> wrote:
On 9/23/2013 10:13 PM, Bret Stern wrote:select part_no,
I have an inventory transaction table with several fields,
specifically:
part_no
trans_type
trans_qty
part_no | trans_type | trans_qty
abc REC 5000 (receipt)
abc REC 400 (receipt)
abc SHP 1000 (shipment)
abc ALL 1000 (allocated)
Looking for the best way to show following totals with SQL
on_hand | allocated | available
3400 1000 4400
sum(cast when trans_type='REC' then trans_qty else 0) as "on_hand",
sum(cast when trans_type='ALL' then trans_qty else 0) as "allocated",
sum(cast when trans_type='SHP' then trans_qty else 0) as "allocated"
from inventory_transaction_table
group by part_no;
except, your example output doesn't correlate with your sample input according to any rules I can see.
--
john r pierce 37N 122W
somewhere on the middle of the left coast
--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
Best Wishes,
Chris Travers
Efficito: Hosted Accounting and ERP. Robust and Flexible. No vendor lock-in.