Я пытаюсь использовать IIF в студии управления SQL Server 2012 (подключен к SQL Server 2012). Я могу создать то, что мне нужно в Access, но синтаксис SQL Server отключает меня. Даже что-то простое, какПроблемы IIF с SQL Server 2012
SELECT IIF(dbo.GL_Register.Credit_Or_Debit = C,'true','false')
from dbo.GL_Register
должен работать, но возвращает следующее сообщение об ошибке: «Ошибка в аргументах функции списка:..„=“Не распознается Невозможно разобрать текст запроса
Это так легко сделать в .?.. Access Что я делаю неправильно Спасибо
обновлен, получил его на полпути работы, используя «как» вместо равных Тогда он говорит: «FROM» проблема:
SELECT dbo.GL_Account.Account_Code, dbo.GL_Register.Date,
SUM(IIF(dbo.GL_Register.Credit_Or_Debit like 'C',-
dbo.GL_Register.Amount,dbo.GL_Register.Amount) AS Expr1
FROM dbo.GL_Register INNER JOIN
dbo.GL_Account ON dbo.GL_Register.Account_Id = dbo.GL_Account.Account_Id
GROUP BY dbo.GL_Account.Account_Code, dbo.GL_Register.Date
HAVING (dbo.GL_Account.Account_Code = N'11000')
Ac SQL, что налог работает как шарм:
SELECT dbo_GL_Account.Account_Code, dbo_GL_Register.Date,
Sum(IIf([Credit_Or_Debit]="C",-[Amount],[Amount])) AS Amount2
FROM dbo_GL_Register INNER JOIN dbo_GL_Account ON dbo_GL_Register.Account_Id
= dbo_GL_Account.Account_Id
GROUP BY dbo_GL_Account.Account_Code, dbo_GL_Register.Date
HAVING (((dbo_GL_Account.Account_Code)="11000"));
Я использовал «CASE» и смог сделать то, что мне было нужно. Но из любопытства я вернулся и снова попробовал свой IIF, и я получил «Ошибка в списке аргументов функции:» = «не распознано». Я все еще не уверен, почему это не работает для меня. Если бы мне пришлось угадать, это потому, что поле не числовое и поэтому не нравится «=». – Bouje
Тип колонки не должен иметь значения. Удивительно, что это не работает для вас! Мое единственное предположение: база данных yout установлена в предыдущую версию (старше 2012 года). Выберите «Свойства»> «Параметры»> «Совместимость» в вашей базе данных. – FLICKER