2
SELECT CTT.BAN, `Company`, `CID`, `FName`, `MInit`, 
   `LName`, `OName`, `Address`, `City`, `State`, 
   `PostalCode`, `ActiveDate`, `ClosedDate`, `Draft`, 
   `Credit`, `BillingCycle`, `BillingFreq`, `Suspended`, 
   `Paperless` , BTT.Bal 
FROM CustomerT CTT
  JOIN BalanceT BTT
ON (CTT.BAN = BTT.BAN)
WHERE  `Paperless` !=  '1'
   AND `BankDraft` != -1
   AND `CreditCard` != -1
   AND (`BillingCycle` = '1' OR `BillingCycle` = '0')
   AND `Bal` > 2 
   AND (`AccountClosedDate` IS NULL OR 
            DATE(`AccountClosedDate`) >= (NOW() - INTERVAL 180 DAY)  )

このクエリではすべてが機能しますが、このサイトからいくつかのことを試しましたが、運がありませんでした。過去 6 か月にクローズしたアカウントのみをテーブルに含める必要があります。

4

1 に答える 1

4

DATE_ADDでこれを試してください

SELECT CTT.BAN, `Company`, `CID`, `FName`, `MInit`, `LName`, `OName`, `Address`, `City`, `State`, `PostalCode`, `ActiveDate`, `ClosedDate`, `Draft`, `Credit`, `BillingCycle`, `BillingFreq`, `Suspended`, `Paperless` , BTT.Bal 
FROM CustomerT CTT
JOIN BalanceT BTT ON
(CTT.BAN = BTT.BAN)
WHERE  `Paperless` !=  '1'
AND `BankDraft` != -1
AND `CreditCard` != -1
AND (`BillingCycle` = '1' OR `BillingCycle` = '0')
AND `Bal` > 2 
AND (`AccountClosedDate` IS NULL OR DATE(`AccountClosedDate`) >=DATE_ADD(CURDATE(), INTERVAL -180 DAY))

または使用( CURDATE() - INTERVAL 180 DAY )

SELECT CTT.BAN, `Company`, `CID`, `FName`, `MInit`, `LName`, `OName`, `Address`, `City`, `State`, `PostalCode`, `ActiveDate`, `ClosedDate`, `Draft`, `Credit`, `BillingCycle`, `BillingFreq`, `Suspended`, `Paperless` , BTT.Bal 
FROM CustomerT CTT
JOIN BalanceT BTT ON
(CTT.BAN = BTT.BAN)
WHERE  `Paperless` !=  '1'
AND `BankDraft` != -1
AND `CreditCard` != -1
AND (`BillingCycle` = '1' OR `BillingCycle` = '0')
AND `Bal` > 2 
AND (`AccountClosedDate` IS NULL OR DATE(`AccountClosedDate`) >=( CURDATE() - INTERVAL 180 DAY ))
于 2013-09-26T18:42:45.267 に答える