Ошибка преобразования при преобразовании значения varchar «& Variable.Text &» в тип данных int - PullRequest
0 голосов
/ 27 июня 2019

При использовании этого пересмотренного запроса я обнаружил, что теперь получаю ошибку преобразования при попытке применить переменную к моим операторам WHERE.Спасибо за любую помощь в этом.

Я попытался ввести фактическое значение, которое содержит переменная, и запрос работает отлично, однако при попытке заменить число (как я сделал с фрагментом кода после«И» появляется с ошибкой ниже. Данные по сути представляют собой комбинацию года и месяца и читают 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&"'

1 Ответ

0 голосов
/ 27 июня 2019

Сначала вы должны поместить фильтр даты в одну кавычку, то есть «2019001».Во-вторых, '& Variable.Text &' 'это должен быть формат даты, а не строка.

Если вы хотите передать переменную для второй даты, используйте правильный синтаксис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...