#c# #sql
#c# #sql
Вопрос:
У меня есть запрос для FillGrid
return DalCommon.OpenSql(@"SELECT ret.*, sli.sliContractNumberInt, sli.sliVCodeBi&, con.conNameStr
FROM SLA.Return ret(nolock)
left join SAL.SalesInvoice sli(nolock) on con.conVCodeInt=sli.sliconVCodeInt
left join APP.APP_TBL_Contacts con(nolock) on con.conVCodeInt=sli.sliconVCodeInt
Where(@retVCodeBi&=0 OR retVCodeBi&=@retVCodeBi&)
AND (ISNULL(@ContractNumberInt,''='' OR sli.sliContractNumberInt=@ContractNumberInt)
AND (ISNULL(@VCodeBi&,''='' OR sli.sliVCodeBi&=@VCodeBi&
And (ISNULL(@txtConVCodeIntStr,'')='' OR con.conNameStr like '%' @txtConVCodeIntStr '%')
AND (ISNULL(@fromDate,'')='' OR retDateStr&&t;=@fromDate)
AND (ISNULL(@toDate,'')='' OR retDateStr<=@toDate)", p);
и это моя ошибка
- Неправильный синтаксис рядом с ключевым словом ‘Return’. ‘ret’ — это не распознанное имя встроенной функции.
Комментарии:
1. В вашем запросе много проблем, если вы действительно используете MySQL. Пожалуйста, отметьте вопрос соответствующим образом. Кроме того, в коде SQL нет
Return
, так что это может показаться просто ошибкой C # — и, вероятно, требуется больше контекста.2. @GordonLinoff извините за неправильный тег! но можете ли вы мне помочь?
3. ret(nolock) означает, что вы вызываете функцию rest с параметром «nolock». Вероятно, вам нужен хотя бы пробел, или
from sla.Return ret WITH (nolock)
. Но это, вероятно, зависит от того, какой SQL-формат вы используете4. Цепочки соединений вычисляются слева направо. Это означает, что вы не можете поместить столбец con.conVCodeInt в предложение ON до объединения таблицы con.
Ответ №1:
Return — это ключевое слово, поэтому его нужно экранировать.
FROM SLA.[Return] ret
Можно усомниться в том, что это подходящее имя для таблицы, но это не прямая проблема.