Использование SQL-подобного оператора внутри параметра в crystal report

#sql-server #crystal-reports

#sql-сервер #crystal-отчеты

Вопрос:

Мне нужно использовать подстановочный знак like в коде sql для одного из параметров в crystal report.

Я смотрю на стандартные символы в SQL Server, мой код работает, если я ищу точный символ, но мне нужно искать похожие символы, чтобы найти какие-либо опции или другие версии запаса. т. Е. Не просто GOOG, а как ‘%GOOG%’. Я не могу найти много в Интернете, но я попытался использовать * вместо % и поиграл с форматом, но если я добавлю что-либо, кроме точного символа, мой отчет будет пустым.

Исходный код:

 where SYMB like '%GOOG%' 
  

Код Crystal:

 where SYMB like {?symbol}
  

——это сработает, но только если я введу точный символ, который отображается, без отклонений—-

Я попытался добавить ‘«amp; {?symbol} amp; ‘‘ — это тоже не сработало

Когда я запускаю код в sql Server, я получаю несколько строк, в которых отображаются сделки для опции в GOOG, что-то вроде ‘GOOG 160215C1200’, но запуск кода через crystal ничего не выдает, потому что он ищет только ‘GOOG’ конкретно.

Ответ №1:

Попробуйте сделать это таким образом:

SYMB like ["*GOOG*"] // вернет значения, содержащие GOOG

или

SYMB like "*" amp; {?GOOG} amp; "*"

Комментарии:

1. При попытке этого я получаю сообщение об ошибке, в нем указано недопустимое имя столбца. Похоже, проблема в том, что в коде sql Server я бы использовал ‘%GOOG%’, но при попытке использовать ‘GOOG’ в параметре внутри строки нет места для символа подстановки. Возможно ли это вообще?

2. «указано недопустимое имя столбца» — измените поле на SYMB

Ответ №2:

Попробуйте этот способ:

 {SYMB} like {?sample}
  

это {SYMB} должно быть ваше поле без круглых скобок, как SYMB не может быть.

Ответ №3:

Для синтаксиса crystal

 SYMB like '*'   {?symbol}   '*'
  

Если это находится в предложении WHERE в команде SQL, используемой для выбора данных в Crystal, то

 WHERE SYMB LIKE '%'   {?symbol}   '%'