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 <pie...@hogranch.com> wrote:

> On 9/23/2013 10:13 PM, Bret Stern wrote:
>
>> 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
>>
>
> select part_no,
>             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@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/**mailpref/pgsql-general<http://www.postgresql.org/mailpref/pgsql-general>
>



-- 
Best Wishes,
Chris Travers

Efficito:  Hosted Accounting and ERP.  Robust and Flexible.  No vendor
lock-in.
http://www.efficito.com/learn_more.shtml

Reply via email to