How to add Dynamic SQL dataset
I am using SSRS 2008 and am trying to add the following dataset to my report. However, whether I add this as a stored procedure or text, it does not display any fields after adding it. And there are no error messages. What could the workarounds and causes be? I have 6 report parameters (in this order): @END_YEAR VARCHAR(10), @END_MONTH VARCHAR(10), @END_WEEK VARCHAR(10), @TheTYPE VARCHAR(MAX), @IssueType VARCHAR(MAX), @Manager VARCHAR(MAX) I did make sure these parameters were linked up properly to my stored proc. I was able to add other datasets of mine which were not dynamic SQL for this same report. And my stored procedure is: ALTER PROCEDURE ActionMetricsPageData --DECLARE @END_YEAR VARCHAR(10), @END_MONTH VARCHAR(10), @END_WEEK VARCHAR(10), @TheTYPE VARCHAR(MAX), @IssueType VARCHAR(MAX), @Manager VARCHAR(MAX) --SET @TheTYPE = 'All' --SET @IssueType = '1' --SET @Manager = 'All' AS --ActionMetricsPageData '2011', '3', '0', 'All', '1', 'All' DECLARE @MainSQL VARCHAR(MAX) DECLARE @START_DATE DATETIME DECLARE @END_DATE DATETIME IF @END_WEEK = '0' AND @END_MONTH = '12' BEGIN SET @START_DATE = CAST(('1/1/' + @END_YEAR) AS DATETIME) SET @END_YEAR = CAST((CAST(@END_YEAR AS INT) + 1) AS VARCHAR(10)) SET @END_DATE = CAST(('1/1/' + (@END_YEAR)) AS DATETIME) END IF @END_WEEK = '0' AND @END_MONTH <> '12' BEGIN SET @END_MONTH = CAST((CAST(@END_MONTH AS INT) + 1) AS VARCHAR(10)) SET @END_DATE = CAST(((@END_MONTH) + '/1/' + @END_YEAR) AS DATETIME) END IF @END_WEEK <> '0' BEGIN SET @START_DATE = DATEADD(wk, @END_WEEK - 1, DATEADD(dd, -1, DATEADD(wk, DATEDIFF(wk,0,Convert(varchar(4), @END_YEAR) + '-01-01'), 0))) SET @END_DATE = DATEADD(DAY, 7, @START_DATE) END IF @TheTYPE = 'All' SET @TheTYPE = ' (IAT_PLAN_TYPE = ''Correction'' OR IAT_PLAN_TYPE = ''Corrective'' OR IAT_PLAN_TYPE = ''Preventive'' OR IAT_PLAN_TYPE = ''QSI - Corrective'' OR IAT_PLAN_TYPE = ''QSI - Correction'' OR IAT_PLAN_TYPE = ''QSI - Preventive'' ) AND SGD_SIGNOFF_DATE >= ' + @START_DATE + ' AND SGD_SIGNOFF_DATE < ' + @END_DATE ELSE IF @TheTYPE = 'Corrective and Preventive' SET @TheTYPE = ' (IAT_PLAN_TYPE = ''Corrective'' OR IAT_PLAN_TYPE = ''Preventive'') AND SGD_SIGNOFF_DATE >= ' + @START_DATE + ' AND SGD_SIGNOFF_DATE < ' + @END_DATE ELSE IF @TheTYPE = 'All QSI' SET @TheTYPE = ' (IAT_PLAN_TYPE = ''QSI - Corrective'' OR IAT_PLAN_TYPE = ''QSI - Correction'' OR IAT_PLAN_TYPE = ''QSI - Preventive'') AND SGD_SIGNOFF_DATE >= ' + @START_DATE + ' AND SGD_SIGNOFF_DATE < ' + @END_DATE ELSE SET @TheTYPE = ' (IAT_PLAN_TYPE = ' + @TheTYPE + ') AND SGD_SIGNOFF_DATE >= ' + @START_DATE + ' AND SGD_SIGNOFF_DATE < ' + @END_DATE IF @IssueType = '1' SET @IssueType = ' (QEI_ITY_NAME = ''Correction (8.1)'' OR QEI_ITY_NAME = ''Corrective Action/Preventive Action'' OR QEI_ITY_NAME = ''Corrective | Preventive Action (8.1)'' OR QEI_ITY_NAME = ''Investigation (8.1)'' OR QEI_ITY_NAME = ''Root Cause Investigation (8.1)'' OR QEI_ITY_NAME = ''Audit'' OR QEI_ITY_NAME = ''Supplier Corrective | Preventive Action (8.1)'' OR QEI_ITY_NAME = ''PXP_PROCESS_QXP'' OR QEI_ITY_NAME = ''PXP_PRODUCT_QXP'') ' ELSE IF @IssueType = '2' SET @IssueType = ' (QEI_ITY_NAME = ''Audit'') ' ELSE IF @IssueType = '3' SET @IssueType = ' (QEI_ITY_NAME = ''Correction (8.1)'' OR QEI_ITY_NAME = ''Corrective Action/Preventive Action'' OR QEI_ITY_NAME = ''Corrective | Preventive Action (8.1)'' OR QEI_ITY_NAME = ''Investigation (8.1)'' OR QEI_ITY_NAME = ''Root Cause Investigation (8.1)'') ' ELSE IF @IssueType = '4' SET @IssueType = ' (QEI_ITY_NAME = ''PXP_PROCESS_QXP'' OR QEI_ITY_NAME = ''PXP_PRODUCT_QXP'') ' ELSE IF @IssueType = '5' SET @IssueType = ' (QEI_ITY_NAME = ''Supplier Corrective | Preventive Action (8.1)'') ' IF @Manager = 'All' SET @Manager = ' <> ''All'' ' ELSE SET @Manager = '= '' REPLACE(''' + @Manager + ''','','''') ' --SELECT @Manager SET @MainSQL = 'SELECT DISTINCT IAT_ID, DOC_DOCUMENT_NO, SGD_SIGNOFF_DATE, BTK_NAME, BTK_CLOSED_DATE, TSK_ANT_COMPL_DATE, IAT_PLAN_TYPE, ACT_MANAGER_NAME, QEI_ITY_NAME FROM (SELECT SMARTSOLVE.V_IAT_IMPL_ACTPLAN_TASK.IAT_ID, SMARTSOLVE.V_QEI_QEX_ISSUE.DOC_DOCUMENT_NO, CASE VH_QEI_QEX_ISSUE.QEI_ITY_NAME WHEN ''Audit'' THEN (SELECT TOP (1) SMARTSOLVE.V_SGD_SIG_DETAIL_TSK.SGD_SIGNOFF_DATE FROM SMARTSOLVE.V_RVW_REVIEW_TSK INNER JOIN SMARTSOLVE.V_SGD_SIG_DETAIL_TSK ON SMARTSOLVE.V_RVW_REVIEW_TSK.RVW_SGN_id = SMARTSOLVE.V_SGD_SIG_DETAIL_TSK.SGD_SGN_id WHERE (SMARTSOLVE.V_RVW_REVIEW_TSK.RVW_id = SMARTSOLVE.V_IMT_IMPLEMENT_TSK.STK_CURRENT_REV_id) ORDER BY SMARTSOLVE.V_SGD_SIG_DETAIL_TSK.SGD_SIGNOFF_DATE DESC) ELSE [PROC].FINAL_APPROVAL.SGD_SIGNOFF_DATE END AS SGD_SIGNOFF_DATE, SMARTSOLVE.V_IAT_IMPL_ACTPLAN_TASK.BTK_NAME, SMARTSOLVE.V_IAT_IMPL_ACTPLAN_TASK.BTK_CLOSED_DATE, SMARTSOLVE.V_IAT_IMPL_ACTPLAN_TASK.TSK_ANT_COMPL_DATE, SMARTSOLVE.V_IAT_IMPL_ACTPLAN_TASK.IAT_PLAN_TYPE, SMARTSOLVE.V_PSN_PERSON.ACT_MANAGER_NAME, SMARTSOLVE.VH_QEI_QEX_ISSUE.QEI_ITY_NAME FROM SMARTSOLVE.VH_QEI_QEX_ISSUE INNER JOIN SMARTSOLVE.V_QEI_QEX_ISSUE ON SMARTSOLVE.VH_QEI_QEX_ISSUE.QEI_id = SMARTSOLVE.V_QEI_QEX_ISSUE.QEI_id INNER JOIN SMARTSOLVE.V_IMT_IMPLEMENT_TSK ON SMARTSOLVE.V_QEI_QEX_ISSUE.QEI_id = SMARTSOLVE.V_IMT_IMPLEMENT_TSK.BTK_DOC_id LEFT OUTER JOIN [PROC].FINAL_APPROVAL ON SMARTSOLVE.V_IMT_IMPLEMENT_TSK.STK_CURRENT_REV_id = [PROC].FINAL_APPROVAL.RVW_id INNER JOIN SMARTSOLVE.V_IAT_IMPL_ACTPLAN_TASK ON SMARTSOLVE.V_IMT_IMPLEMENT_TSK.IMT_id = SMARTSOLVE.V_IAT_IMPL_ACTPLAN_TASK.BTK_PARENT_id LEFT OUTER JOIN SMARTSOLVE.V_PSN_PERSON ON SMARTSOLVE.V_IAT_IMPL_ACTPLAN_TASK.BTK_OWNER_id = SMARTSOLVE.V_PSN_PERSON.ACT_id WHERE (SMARTSOLVE.V_IAT_IMPL_ACTPLAN_TASK.BTK_STATUS <> ''ABR'') AND (CASE VH_QEI_QEX_ISSUE.QEI_ITY_NAME WHEN ''Audit'' THEN (SELECT TOP (1) SMARTSOLVE.V_SGD_SIG_DETAIL_TSK.SGD_SIGNOFF_DATE FROM SMARTSOLVE.V_RVW_REVIEW_TSK INNER JOIN SMARTSOLVE.V_SGD_SIG_DETAIL_TSK ON SMARTSOLVE.V_RVW_REVIEW_TSK.RVW_SGN_id = SMARTSOLVE.V_SGD_SIG_DETAIL_TSK.SGD_SGN_id WHERE (SMARTSOLVE.V_RVW_REVIEW_TSK.RVW_id = SMARTSOLVE.V_IMT_IMPLEMENT_TSK.STK_CURRENT_REV_id) ORDER BY SMARTSOLVE.V_SGD_SIG_DETAIL_TSK.SGD_SIGNOFF_DATE DESC) ELSE [PROC].FINAL_APPROVAL.SGD_SIGNOFF_DATE END IS NOT NULL) AND (SMARTSOLVE.V_IMT_IMPLEMENT_TSK.BTK_NAME <> ''PQRE and /or Action Plan'') AND (SMARTSOLVE.V_IMT_IMPLEMENT_TSK.BTK_NAME <> ''Implement Required Actions'') AND (SMARTSOLVE.V_IAT_IMPL_ACTPLAN_TASK.IAT_PLAN_TYPE <> ''Effectivity Check'') UNION SELECT SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_ID, SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_EXCEPTION_NO, SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_CREATED_DATE, SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_XRS_DESCRIPTION, SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_CLOSED_DATE, NULL, SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_XRS_DESCRIPTION, SMARTSOLVE.V_PSN_PERSON.ACT_MANAGER_NAME, SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_BASE_EXCEPTION FROM SMARTSOLVE.V_QXP_ALL_EXCEPTION INNER JOIN SMARTSOLVE.V_PSN_PERSON ON SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_CLOSED_BY = SMARTSOLVE.V_PSN_PERSON.ACT_LOGONUSER WHERE (SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_XRS_DESCRIPTION = ''Correction'') AND (SMARTSOLVE.V_QXP_ALL_EXCEPTION.QXP_RESOLUTION <> ''300'') )B WHERE ' SET @MainSQL = @MainSQL + @TheTYPE + ' AND ' + @IssueType + ' AND ACT_MANAGER_NAME ' + @Manager EXEC (@MainSQL)
June 13th, 2011 4:37pm

nevermind. I found source of this error: date parameters are encapsulated in dynamic portion of sql. I fixed this. But now I get this error: Conversion failed when converting datetime from character string. However, the signoff_date field is datetime and so is start_date and end_date. Ryan Daulton
Free Windows Admin Tool Kit Click here and download it now
June 13th, 2011 5:25pm

Hi, I’m glad to hear you have figured out the original issue. For the conversion error, you may run into the problem that use parameterized query statement in dynamic SQL. Instead of embedding datetime parameters into the string, I would suggest you keep them as parameters. As an example, please take a look at the similar thread http://social.msdn.microsoft.com/Forums/en/transactsql/thread/baeac539-5015-4f5b-b18a-2026e8232b96 For more information about sp_executesql, please refer to http://msdn.microsoft.com/en-us/library/ms188001.aspx Thanks, Tony Chain Tony Chain [MSFT CSG] | Microsoft Community Support Get or Request Code Sample from Microsoft Please remember to mark the replies as answers if they help and unmark them if they provide no help.
June 16th, 2011 3:49am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics