ГДЕ условия работают индивидуально, а не в сочетании - PullRequest
0 голосов
/ 26 октября 2018

У меня есть запрос, который генерирует эту ошибку:

enter image description here

Код успешно выполняется при использовании любого условия WHERE, но когда я объединяю их с OR, я получаю следующую ошибку:

Несоответствие типов данных в выражении критериев.

Я не уверен, как это интерпретировать. Может кто-нибудь посоветовать?

Это весь код, который генерирует сообщение:

SELECT
    tExceptionsAll1.ID,
    tExceptionsAll1.CardholderName,
    PCARDS_ILL_DBO_CARD.PERSON_ID,
    tExceptionsAll1.CardType, 
    tExceptionsAll1.Duration,
    tExceptionsAll1.ExceptionType,
    tExceptionsAll1.STL AS [Exp STL],
    tExceptionsAll1.CL AS [Exp CL], 
    tExceptionsAll1.TempSTL As [Exp TempSTL],
    tExceptionsAll1.TempCL As [Exp TempCL],
    PCARDS_ILL_DBO_CARD.TRANS_LIMIT_AMT AS [Card STL],
    PCARDS_ILL_DBO_CARD.MONTH_LIMIT_AMT AS [Card CL], 
    tExceptionsAll1.TerminationDate,
    tExceptionsAll1.DCMNames,
    tExceptionsAll1.ReminderDate
FROM PCARDS_ILL_DBO_CARD
INNER JOIN tExceptionsAll1 
ON PCARDS_ILL_DBO_CARD.CARD_ID = CLNG(tExceptionsAll1.CardID) 
AND CLNG(PCARDS_ILL_DBO_CARD.PERSON_ID) = tExceptionsAll1.CardholderUIN
WHERE
    (tExceptionsAll1.STL > 0 AND
    tExceptionsAll1.CL  > 0 AND
    PCARDS_ILL_DBO_CARD.TRANS_LIMIT_AMT <> tExceptionsAll1.STL AND
    PCARDS_ILL_DBO_CARD.MONTH_LIMIT_AMT <> tExceptionsAll1.CL  AND
    tExceptionsAll1.TerminationDate IS NULL)
    OR 
    (tExceptionsAll1.TempSTL > 0 AND
    tExceptionsAll1.TempCL  > 0 AND
    PCARDS_ILL_DBO_CARD.TRANS_LIMIT_AMT <> tExceptionsAll1.TempSTL AND
    PCARDS_ILL_DBO_CARD.MONTH_LIMIT_AMT <> tExceptionsAll1.TempCL AND
    tExceptionsAll1.TerminationDate IS NULL AND
    tExceptionsAll1.Duration like 'One-Time' AND
    tExceptionsAll1.ReminderDate < date());

1 Ответ

0 голосов
/ 26 октября 2018

Эта ошибка означает, что вы сравниваете две вещи, которые имеют два несовместимых типа в предложении WHERE.

Вы должны попытаться удалить их по одному, чтобы знать, откуда возникла проблема. Не забудьте сохранить копию оригинального запроса.

Источник

...