Re: Refining query statement - Mailing list pgsql-general

From Adrian Klaver
Subject Re: Refining query statement
Date
Msg-id 68ed1eaa-7a03-fbaf-26e2-a1979b636174@aklaver.com
Whole thread Raw
In response to Re: Refining query statement  (Rich Shepard <rshepard@appl-ecosys.com>)
Responses Re: Refining query statement  (Rich Shepard <rshepard@appl-ecosys.com>)
Re: Refining query statement  (Rich Shepard <rshepard@appl-ecosys.com>)
List pgsql-general
On 1/17/19 8:14 AM, Rich Shepard wrote:
> On Tue, 15 Jan 2019, Thomas Kellerer wrote:
> 
>>    select distinct on (C.contact_id) C.contact_id, C.lname, C.fname, 
>> C.direct_phone, O.org_name, A.next_contact
>>    from Contacts as C
>>      join Organizations as O on C.org_id = O.org_id
>>      join Activities as A on C.contact_id = A.contact_id
>>    where A.next_contact <= 'today'
>>      and A.next_contact > '2018-12-31'
>>    order by c.contact_id, a.next_contact DESC;
> 
> Combining this with Adrian's advice to use BETWEEN I have this statement
> that almost works:
> 
> SELECT DISTINCT ON (c.contact_id) c.contact_id, c.lname, c.fname, 
> c.direct_phone, o.org_name, a.next_contact
> FROM Contacts AS c
>    JOIN Organizations AS o ON c.org_id = o.org_id
>    JOIN Activities AS a ON c.contact_id = a.contact_id WHERE 
> next_contact BETWEEN '01/01/2019'::date AND 'today'::date ORDER BY 
> c.contact_id, a.next_contact DESC;
> 
> It fails when the most recent next_contact column in Activities is NULL and
> an earier row has a non-NULL date in the specified range.
> 
> I tried specifying max(a.next_contact) and added GROUP BY, but the result
> set all returned o.org_name columns to the same one.
> 
> The WHERE clause needs to exclude a contact_id where the most current 
> row in
> Activities has NULL for the next_contact column. I've tried a few ideas but
> none work so I need to learn the proper syntax, and I don't find that in
> Rick van der Lans' or Joe Celko's books I have.

Got to thinking more and realized the answer depends on what you want 
the query to produce. Can you let us know what is you are trying to pull 
out with the query?

> 
> Looking forward to learning,
> 
> Rich
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com


pgsql-general by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Refining query statement
Next
From: Rich Shepard
Date:
Subject: Re: Refining query statement