Afternoon everyone, Sorry, don't you hate the fact that the tab key submits your emails on web clients!?
Anyway please ignore that last partial email, I've got myself stuck with some SQL. What it boils down to is... SELECT wordgroup.Title AS `Keyword Group`, site.Site_name AS Site, questiontext.SanitisedQuestion AS Question, site.SiteID AS sid, question.QuestionID AS qid, COUNT(wordgroupanalysis.AnswerFK) AS Hits FROM wordgroup LEFT JOIN wordgroupanalysis ON wordgroupanalysis.WordGroupFK = wordgroup.WordGroupID LEFT JOIN answer ON answer.AnswerID = wordgroupanalysis.AnswerFK LEFT JOIN answertext ON answertext.AnswerTextID = answer.AnswerTextFK LEFT JOIN question ON question.QuestionID = answer.QuestionFK LEFT JOIN questiontext ON questiontext.QuestionTextID = question.QuestionTextFK LEFT JOIN individual ON individual.IndividualID = answer.PeopleFK LEFT JOIN site ON individual.SiteFK = site.SiteID WHERE Answer <> 'NULL' AND site.Site_name <> 'HQ' AND individual.Date_consumed BETWEEN "2006-01-01" AND "2007-05-01" GROUP BY wordgroup.Title, site.Site_name, questiontext.SanitisedQuestion ORDER BY NULL; ...returns me the number of "hits" (matches) of each keyword group against the text based responses to various questions in a Questionnaire that is sent out to different client sites, something like... +---------------+------------------+--------------------------------------------------------------------------------------------+------+--------+------+ | Keyword Group | Site | Question | sid | qid | Hits | +---------------+------------------+--------------------------------------------------------------------------------------------+------+--------+------+ | Drinks | SHERWOOD PINES | if you were less than satisfied with any of the above areas please provide further details | 378 | 356 | 39 | | Drinks | BRACKNELL | if you were less than satisfied with any of the above areas please provide further details | 382 | 431 | 75 | | Drinks | DEAN | if you were less than satisfied with any of the above areas please provide further details | 379 | 356 | 44 | All well and fine but then I want to get the total number of answers to that question whether or not they matched against the keyword group so that I can make the "hits" into a percentage, I can get the total answers on an individual basis like so... SELECT COUNT(*) FROM answer LEFT JOIN individual ON individual.IndividualID= answer.PeopleFK WHERE answer.QuestionFK = 356 AND individual.SiteFK = 378 AND individual.Date_consumed BETWEEN "2006-01-01" AND "2007-05-01"; ...but it has to be done all in one query (crapy Crystal Reports, don't ask). I've tried it as a subquery and as a function but it states that "Select 2 was reduced during optimization" when done as a function and seems to be trying to join every count against every row in the main table when run as a subquery and then grinds to a halt, I need it to run the subquery as an outer join I think onto the answer table but I can't get my head round it? Anyone know how I can do this? I'll personally have your babies! -- Regards, Phil