Получить количество дней, баланс был отрицательным - PullRequest
0 голосов
/ 31 мая 2019

Я хотел бы получить количество дней, в течение которых на счету было отрицательное сальдо.

У меня есть следующая таблица баланса.

|AccNo |    Amount      | Date
------------------------------------
|1     |    -8775.76    | 2019-05-31 
|1     |    -697.05     | 2019-05-30
|1     |    -3504.52    | 2019-05-29
|1     |   +1783.67     | 2019-05-28
|1     |    -14204.55   | 2019-05-27


  SELECT DATEDIFF(DAY, AccountB.Date, GETDATE()) AS DaysInDebit
  FROM (SELECT TOP 1 Date
        FROM Balance WHERE AccNo = 1
        AND Amount > 0
        ORDER BY Date DESC
       ) AS AccountB
  ORDER BY AccountB.Date DESC

Я ожидаю получить 3 дня, когдасчет был в долгу.Результат устанавливается с 2019-05-28 по 2019-05-31.Разница в датах = 3

Ответы [ 2 ]

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

Вы можете сделать это, найдя max() для последнего положительного баланса.

select
    count(*) as NumberOfDays
from Balance
where [Date] > (select max([Date]) from Balance where Amount > 0 and AccNo = 1)
and AccNo = 1
0 голосов
/ 31 мая 2019

Попробуйте это-

SELECT 
DATEDIFF
(
    DD,
    (
        SELECT 
        MAX(Date) 
        FROM your_table 
        WHERE ID= 1
        AND Amount > 0
    ),
    GETDATE()
)
FROM your_table 
WHERE ID = 1
GROUP BY ID 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...