Re: SQL query to display like this

From: Richard Huxton <dev(at)archonet(dot)com>
To: RPK <rpk(dot)general(at)gmail(dot)com>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: SQL query to display like this
Date: 2007-08-24 11:36:05
Message-ID: 46CEC2A5.9090706@archonet.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

RPK wrote:
> select PaySlipDate,EmpID,
> case ADCode when 'GPF' then ADAmount else 0 end GPF,
> case ADCode when 'GPF.ADV' then ADAmount else 0 end 'GPF.ADV'
> from EmpSalaryRecord
>
> It is showing like this:
>
> Date EmpID GPF GPF.ADV
> -----------------------------------------
> 01-Jul-07 101 0 0
> 01-Jul-07 101 150 0
> 01-Jul-07 102 0 100
> 01-Jul-07 103 0 0
> 01-Jul-07 103 1000 0
> 01-Jul-07 103 0 1000
>
> It is showing multiple records of each employee for each date.

No it's not. It's showing 2 records for empid=101, 3 for empid=103 but
only 1 for empid=102. That says to me you have multiple rows in your
table for each (date,empid) combination.

If you want to eliminate them, either filter on AdCode or perhaps SUM()
your GPF/GPF.ADV colums.

--
Richard Huxton
Archonet Ltd

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Andreas Joseph Krogh 2007-08-25 15:10:57 Returning array of IDs as a sub-query with group-by
Previous Message RPK 2007-08-24 10:42:55 SQL query to display like this