I have this SQL statement below.

        <cfquery name="random_poll" datasource="#dsn#">
        SELECT DISTINCT portal_polls.poll_id, portal_polls.question, 
portal_polls.answer1, portal_polls.answer2, portal_polls.answer2, 
portal_polls.answer4, portal_polls.answer4, portal_polls.number_answers
        FROM   portal_polls, portal_groups_x_polls, portal_groups_x_students
        WHERE  (portal_polls.start_date < #Now()# and portal_polls.end_date > 
#Now()#)
                        and (everyone=1 OR 
(portal_groups_x_polls.poll_id=portal_polls.poll_id and 
portal_groups_x_students.group_id=portal_groups_x_polls.group_id and 
portal_groups_x_students.student_user_id=#session.userid#))
                        and not exists (SELECT * FROM 
portal_students_x_polls_completed WHERE 
portal_students_x_polls_completed.poll_id=portal_polls.poll_id and 
portal_students_x_polls_completed.student_user_id=#session.userid#);
        </cfquery>


In short it selects a list of polls which:

        1.  Are active (open but not ended) ... thus the start_date, end_date 
        2.  Are open to everyone (everyone) OR open to a group for which this 
poll is allowed and in which the user (session.userid) is enrolled... thus the 
joins to portal_groups_x_polls and portal_groups_x_students)
        3. and Have NOT already been completed by this user... thus the not 
exists in portal_students_x_polls_completed

All this is working correctly, but I want to select ONLY 1 poll at RANDOM. 

Normally I would use TOP 1 and ORDER BY NEWID() to do this.  But it doesn't 
like that with the DISTINCT clase. I'm using DISTINCT because the same poll 
could come up several times if it's allowed in multiple groups and that use is 
in several of those groups. And I would drop the DISTINCT but if one poll comes 
up a bunch of times that would increase the likelihood it would be selected at 
random. 

Anyone know how I can adjust this query to select only 1 matching record at 
random? 


Thanks,
Robert



Robert B. Harrison
Director of Interactive Services
Austin & Williams
125 Kennedy Drive, Suite 100 
Hauppauge NY 11788
P : 631.231.6600 Ext. 119 
F : 631.434.7022
http://www.austin-williams.com 

Great advertising can't be either/or.  It must be &.

Plug in to our blog: A&W Unplugged
http://www.austin-williams.com/unplugge

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:346494
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to