在使用此修订的查询时,我发现尝试将变量应用于WHERE语句时遇到了转换错误。感谢您的帮助。
我试图输入变量持有的实际值,并且查询工作正常,但是当尝试替换数字时(如我在“ AND”之后对代码段所做的操作一样,出现以下错误) 。数据本质上是年和月的组合,读取为2018011、2018012、2019001、2019002等...
Select *
From (
SELECT A_TABLE.BU_CODE
,A_TABLE.ACCNT_CODE
,A_TABLE.PERIOD
,A_TABLE.REPORT_AMT
,A_TABLE.TREFERENCE
,A_TABLE.DESCRIPTN
,A_TABLE.ANAL_T0
,'A' MEASURE
FROM A_TABLE WHERE (A_TABLE.ANAL_T0 = 'B80' AND A_TABLE.PERIOD BETWEEN 2019001 AND '"&Variable.text&"')
UNION ALL
SELECT B_TABLE.BU_CODE
,B_TABLE.ACCNT_CODE
,B_TABLE.PERIOD
,B_TABLE.REPORT_AMT
,B_TABLE.TREFERENCE
,B_TABLE.DESCRIPTN
,B_TABLE.ANAL_T0
,'B' MEASURE
FROM B_TABLE WHERE (B_TABLE.ANAL_T0 = 'B80' AND B_TABLE.PERIOD BETWEEN 2019001 AND '"&Variable.text&"')
) src
PIVOT ( SUM(REPORT_AMT) FOR MEASURE IN ([A], [B]) ) AS PivotTable
我在执行上述操作时收到此错误消息。
转换varchar值时转换失败 '“&Variable.Text&”'数据类型为int。
我现在已尝试添加此内容,但进一步导致了错误。
Declare @CBal Int
Set @CBal = '"&Variable.Text&"'
该软件位于其中-在简单的SELECT FROM WHERE查询中,我可以使用上面的软件,例如这没问题
SELECT * FROM A_TABLE WHERE A_TABLE.PERIOD BETWEEN '"&Variable.Text&"' AND '"&Variable.Text&"'
答案 0 :(得分:0)
首先,您应该将日期过滤器放在单个倒逗号内,即“ 2019001”。其次,“&Variable.Text&”应该是日期格式,而不是字符串。
如果要第二次传递变量,请使用正确的语法。