sql server - Incorrect SQL Syntax with nested Select statements in Crystal Reports -
trying create crystal report , need make own custom dataset our existing database so. i've done aliasing, checked individual selects solid, when put them together, syntax errors. going wrong? sqlexpress query here:
/*enter date month wish report on: (ex jan 2015 2015-01-xx)*/ select avgcomprespdays.compdayshigh, avgcomprespdays.compdayslow, avgcomprespdays.respdayshigh, avgcomprespdays.respdayslow, totalwo.total, totalwo.now, totalwo.high, totalwo.low, numbermetgoal.high, numbermetgoal.low, toptentypes.top10 ( /* select avg(datediff(d,"opendate","clsddate")*1.0) compdaysnow, avg(datediff(d,"opendate","respondeddate")*1.0) respdaysnow "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'now' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}),*/ select avg(datediff(d,"opendate","clsddate")*1.0) compdayshigh, avg(datediff(d,"opendate","respondeddate")*1.0) respdayshigh "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'high - 1 day' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) /*these next 2 lines specify closed tickets in last month*/ , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}), select avg(datediff(d,"opendate","clsddate")*1.0) compdayslow, avg(datediff(d,"opendate","respondeddate")*1.0) respdayslow "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'low - 3 days' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}) ) avgcomprespdays, ( select count("priority") "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'now' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}), select count("priority") high "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'high - 1 day' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}), select count("priority") low "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'low - 3 days' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}), select count("priority") total "trackit_data2"."trackitapp_1"."vtasks_browse" datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}) ) totalwo, ( select count("priority") high "trackit_data2"."trackitapp_1"."vtasks_browse" datediff(d,"opendate","clsddate") <= 1 , "priority" = 'high - 1 day' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}), select count("priority") low "trackit_data2"."trackitapp_1"."vtasks_browse" datediff(d,"opendate","clsddate") <= 3 , "priority" = 'low - 3 days' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}) ) numbermetgoal, ( select top 10 "type",count("type") top10 "trackit_data2"."trackitapp_1"."vtasks_browse" order count("type") desc ) toptentypes
i think you're trying in single query; i'm reading you're trying both single total data points, , collection of top 10 results. these different things , think @ least you'll need break these out separate queries / data sets pulling crystal. it's been awhile since i've worked crystal, if it's ssrs you'd build query , either make stored proc or embed inline , in report software create dataset query. i'm envisioning have dataset top 10 list, , dataset individual total points can place wherever want.
so first take top 10 query , set it's own dataset:
select top 10 "type",count("type") top10 "trackit_data2"."trackitapp_1"."vtasks_browse" order count("type") desc now individual data points think query can work common table expression (cte). like:
;with avgcomprespdayshigh ( select avg(datediff(d,"opendate","clsddate")*1.0) compdayshigh, avg(datediff(d,"opendate","respondeddate")*1.0) respdayshigh "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'high - 1 day' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) /*these next 2 lines specify closed tickets in last month*/ , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate})) ), avgcomprespdayslow (select avg(datediff(d,"opendate","clsddate")*1.0) compdayslow, avg(datediff(d,"opendate","respondeddate")*1.0) respdayslow "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'low - 3 days' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}) ), totalwonow ( select count("priority") "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'now' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}) ), totalwohigh (select count("priority") high "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'high - 1 day' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}) ), totalwolow (select count("priority") low "trackit_data2"."trackitapp_1"."vtasks_browse" "priority" = 'low - 3 days' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}) ), totalwototal (select count("priority") total "trackit_data2"."trackitapp_1"."vtasks_browse" datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}) ), numbermetgoalhigh ( select count("priority") high "trackit_data2"."trackitapp_1"."vtasks_browse" datediff(d,"opendate","clsddate") <= 1 , "priority" = 'high - 1 day' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}) ), numbermetgoallow (select count("priority") low "trackit_data2"."trackitapp_1"."vtasks_browse" datediff(d,"opendate","clsddate") <= 3 , "priority" = 'low - 3 days' , datepart(m,"clsddate") = datepart(m, {?reportingdate}) , datepart(yyyy,"clsddate") = datepart(yyyy, {?reportingdate}) ) select avgcomprespdayshigh.compdayshigh, avgcomprespdayslow.compdayslow, avgcomprespdayshigh.respdayshigh, avgcomprespdayslow.respdayslow, totalwototal.total, totalwonow.now, totalwohigh.high, totalwolow.low, numbermetgoalhigh.high, numbermetgoallow.low avgcomprespdayshigh, avgcomprespdayslow, totalwototal, totalwonow, totalwohigh, totalwolow, numbermetgoalhigh, numbermetgoallow but still seems pretty clunky me. don't know you're getting field names , passed in variables, if that's crystal reports thing or not. of other comments mentioned removing double quotes, etc.
if data set you're looking single row field each total, might more straightforward make @table variable field each value want, , run each aggregate query updating value in table variable appropriate. select out row , saves of clumsiness of above cte.
Comments
Post a Comment