Re: Refining query statement

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: Rich Shepard <rshepard(at)appl-ecosys(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: Refining query statement
Date: 2019-01-17 16:41:26
Message-ID: 68ed1eaa-7a03-fbaf-26e2-a1979b636174@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Rich Shepard 2019-01-17 16:46:54 Re: Refining query statement
Previous Message David G. Johnston 2019-01-17 16:36:53 Re: Refining query statement