> Mayhaps you mean:
> 
>  Select f.*
>    from firms f
>     left join (select firm_id, max(by_or_on) as boo
>                  from calls
>              group by firm_id
>                having by_or_on is not null
>              order by by_or_on desc) c
>       on c.firm_id = f.id
> order by boo desc;

Should be:

 Select f.*
   from firms f 
    left join (select firm_id, max(by_or_on) as boo
                 from calls
             group by firm_id
               having max(by_or_on) is not null
             order by max(by_or_on) desc) c
      on c.firm_id = f.id
order by boo desc;

or the equivalent:

 Select f.*
   from firms f 
    left join (select firm_id, max(by_or_on) as boo
                 from calls
             group by firm_id
               having boo is not null
             order by boo desc) c
      on c.firm_id = f.id
order by boo desc;

---
()  ascii ribbon campaign against html e-mail
/\  www.asciiribbon.org


> -----Original Message-----
> From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-
> boun...@sqlite.org] On Behalf Of Keith Medcalf
> Sent: Saturday, 02 February, 2013 17:11
> To: General Discussion of SQLite Database
> Subject: Re: [sqlite] trying to exclude records which have a field that is
> null
> 
> 
> I'm surprised you are getting anything at all since the statement is
> semantically invalid.
> 
>  Select f.*
>    from firms f
>     left join (select firm_id, max(by_or_on) as boo
>                  from calls
>              group by firm_id
>                having by_or_on is not null
>              order by by_or_on desc)
>       on c.firm_id = f.id
> order by boo desc;
> 
> Perhaps you can describe the result you are attempting to obtain.
> 
> **the having clause filters the "return rows" of a "group by" (aggregate)
> select.  Therefore the references in the HAVING can only test against
> "returned columns", not against the "source columns" from which the result
> is derived.  Once uses the WHERE clause to apply conditions to the input
> of the aggregate, and HAVING to apply conditions to the output.
> 
> **the same applies to the "order by" of a "group by" (aggregate) select.
> You can only order by the "returned result columns", not by the "source
> data columns".
> 
> Mayhaps you mean:
> 
>  Select f.*
>    from firms f
>     left join (select firm_id, max(by_or_on) as boo
>                  from calls
>              group by firm_id
>                having by_or_on is not null
>              order by by_or_on desc) c
>       on c.firm_id = f.id
> order by boo desc;
> 
> of course, the order by inside the table subquery is useless, so this
> would become:
> 
>  Select f.*
>    from firms f
>     left join (select firm_id, max(by_or_on) as boo
>                  from calls
>              group by firm_id
>                having boo is not null) c
>       on c.firm_id = f.id
> order by boo desc;
> 
> but perhaps you really mean:
> 
>  Select f.*
>    from firms f
>     left join (select firm_id, max(by_or_on) as boo
>                  from calls
>                 where by_or_on is not null
>              group by firm_id) c
>       on c.firm_id = f.id
> order by boo desc;
> 
> which is a somewhat different thing.
> 
> ---
> ()  ascii ribbon campaign against html e-mail
> /\  www.asciiribbon.org
> 
> 
> > -----Original Message-----
> > From: sqlite-users-boun...@sqlite.org [mailto:sqlite-users-
> > boun...@sqlite.org] On Behalf Of e-mail mgbg25171
> > Sent: Saturday, 02 February, 2013 16:19
> > To: General Discussion of SQLite Database
> > Subject: [sqlite] trying to exclude records which have a field that is
> > null
> >
> >     wSQL = _
> >     "Select f.* " & _
> >     "from firms f " & _
> >     "left join " & _
> >     "(" & _
> >         "select firm_id, max(by_or_on) as boo " & _
> >         "from calls " & _
> >         "group by firm_id " & _
> > "having by_or_on is not null " & _    <==========THIS ISN'T DOING IT FOR
> > ME
> > AND I'D LIKE TO KNOW WHY
> >         "order by by_or_on desc" & _
> >     ") c " & _
> >     "on c.firm_id = f.id " & _
> >     "order by boo desc;"
> >
> > Any help much appreciated
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@sqlite.org
> > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> 
> 
> 
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users



_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to