ГДЕ утверждение не функционирует - PullRequest
1 голос
/ 07 мая 2019

Я пытаюсь отфильтровать accountledger.transactiondate, чтобы вернуть только те возмещения между 2019-04-01 и 2020-03-31.

Однако предложение WHERE не действует.

У меня естьперенес оператор WHERE во многие места в скрипте;без изменений в результатах.

Это мой код:

SELECT accountledger.CAMPUSCODE, accountledger.ID, students.FNAME,
    students.LNAME, accountledger.PROGRAM,
    accountledger.TRANSACTIONDATE, accountledger.TRANSACTIONAMOUNT,
    accountledger.DESCRIPTION as 'ENR Desc',
    accountledger.TRANSACTIONCODE as 'Inv Desc',
    chart_accounts.NAME AS 'ChAcc Name' 
FROM accountledger 

INNER JOIN students 
  ON accountledger.ID = students.ID
INNER JOIN fees 
  ON accountledger.TRANSACTIONCODE = fees.NAME
INNER JOIN chart_accounts 
  ON fees.ACCOUNT = chart_accounts.ACCOUNT

WHERE accountledger.TRANSACTIONtype = 'I' 
  and accountledger.transactioncode like '%refund%'
   or accountledger.transactioncode like '%paid to d-ed%'
   or accountledger.transactioncode like '%paid to military%'
   or accountledger.transactioncode like '%paid to voc rehab%'
  and chart_accounts.NAME
  AND accountledger.transactiondate BETWEEN 2019-04-01 AND 2020-03-31
GROUP BY accountledger.id
ORDER BY accountledger.TRANSACTIONDATE

Я ожидаю только тех возмещений, которые были выпущены в параметрах даты оператора WHERE.Однако скрипт возвращает все возвраты независимо от даты транзакции.

1 Ответ

0 голосов
/ 07 мая 2019

Использовать правильный синтаксис

accountledger.transactiondate BETWEEN CAST('2019-04-01' AS DATE) AND CAST('2020-03-31' AS DATE) 

вместо

accountledger.transactiondate BETWEEN 2019-04-01 AND 2020-03-31
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...