--- mysqlman <[EMAIL PROTECTED]> wrote:

> 
> I am attempting to get a simple query working:
> 
> select *,MAX(a.teaching_date) as max,
> MIN(a.teaching_date) as min from
> teaching a, topic_cat b where a.teaching_topic =
> b.topic_id or
> a.teaching_topic = 999 group by a.teaching_topic
> order by a.teaching_date
> DESC
> 
> This all works, except I don't want to 'group by
> a.teaching_topic' if
> a.teaching_topic = 999.
> 
> Anyone know how to do this?  Thank you.
> -- 

I don't quite understand your problem, do you want the
records with teaching_topic equal to 999 to show up in
the result set or not?

If you want them to show up, the group statement still
applies because the max() and min() function require a
GROUP BY clause.

Now, if instead you want a specific string/date to be
displayed when the teaching_topic equals 999 you could
do...

select a.x, b.y, if(a.teaching = 999,
'1970-01-01',max(a.teaching_topic) as max,
if(a.teaching = 999,
'1970-01-01',min(a.teaching_topic) as min from
teaching a , topic_cat b where a.teaching_topic =
b.topic_id or a.teaching_topic = 999 group by
a.teaching_topic order by a.teaching_date DESC;


regards,
Enrique.

--------------------------------------
"What you have been obliged to discover
by yourself leaves a path in your mind
which you can use again when the need
arises."    --G. C. Lichtenberg

http://themathcircle.org/

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to