'AND Column BETWEEN #FORM.Start# AND #FORM.End#' but this
Not without a clarification of "isn't working" or seeing an error message.
Also, that is a lot of subqueries, which do not always perform well with large tables.
The error message I receive is 'too few parameters expected 1'. I know there are a lot of subqueries with this but aside from the date issue the query is running correctly.
What is the SQL being generated by your <cfquery> contents? Is it valid SQL? This is always the first thing to check when you get SQL errors back from the DB... check what you're sending to the DB.
Second: don't hard-code dynamic values into your SQL string, pass them as parameters.
Re all the subqueries: it runs fine in dev. Have you tried to load test it? If poss move your subqueries to the FROM statement, as then they're only run once per recordset. As opposed to once per row of the result set, when the subqueries are in the SELECT or WHERE statement.
I see two issues.
First, your form variables are strings, not date objects. Sometimes you can get away with that but not always. lsparsedatetime() is available to convert strings to dates.
Second, if your datatype is date and time, using "between" can cause you to miss records. A better approach is:
where datefield >= date1
and datefield < date2