Как добавить регистр выражений в запросе выбора SQL - PullRequest
0 голосов
/ 05 июня 2019

Я попробовал следующий запрос, чтобы получить входящие платежные реквизиты клиентов.Что не так в этом случае заявления?Здесь мне нужно отобразить тип оплаты, если он имеет сумму.

select convert(varchar,a.DocDate,110) as DocDate,
       a.CardCode,
       a.CardName,
       d.SlpName,
       e.CheckNum,
       (case when a.CashSum >= 0 then "Cash Payment" when a.CreditSum >= 0 then "Credit Card Payment" when a.CheckSum >= 0 then "Cheque Payment" else "Bank Transfer" end) as 'Payment type',
       (ISNULL(a.CashSum,0) + ISNULL(a.CreditSum,0) + ISNULL(a.CheckSum,0) + ISNULL(a.TrsfrSum,0)) as DocTotal 
from ORCT a
left join RCT2 b on b.DocNum=a.DocNum
Left Join OINV c on c.DocNum = b.DocEntry
Left join OSLP d on d.SlpCode = c.SlpCode
left join RCT1 e on e.DocNum = a.DocEntry

Выдает следующую ошибку enter image description here

Ответы [ 2 ]

3 голосов
/ 05 июня 2019

В SQL Server буквенные строки заключаются в одинарные кавычки ', а не в двойные кавычки ".

Имена столбцов (объектов), с другой стороны, заключены в квадратные скобки [Payment type] или в двойные кавычки "Payment type".

Итак, ваш запрос должен выглядеть так:

case 
    when a.CashSum >= 0 then 'Cash Payment' 
    when a.CreditSum >= 0 then 'Credit Card Payment'
    when a.CheckSum >= 0 then 'Cheque Payment'
    else 'Bank Transfer' 
end as [Payment type]
1 голос
/ 05 июня 2019

Замените двойные кавычки на одинарные в следующем выражении регистра в блоке THEN:

(case when a.CashSum >= 0 then "Cash Payment" when a.CreditSum >= 0 then "Credit Card Payment" when a.CheckSum >= 0 then "Cheque Payment" else "Bank Transfer" end) as 'Payment type',

до

(case when a.CashSum >= 0 then 'Cash Payment' when a.CreditSum >= 0 then 'Credit Card Payment' when a.CheckSum >= 0 then 'Cheque Payment' else 'Bank Transfer' end) as 'Payment type',

Пример с демонстрацией db <> fiddle:

Ошибка получения при использовании двойных кавычек в THEN

Работает после изменения на одинарные кавычки в THEN

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