Есть ли способ условно суммировать диапазоны дат в запросе Access SQL? - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть таблица «ORDERHIST», содержащая данные транзакции с идентификаторами клиента, датой покупки, датой получения оплаты, различными типами транзакций и суммой счета.Я пытаюсь создать таблицу, которая показывает сумму всех неоплаченных сумм счетов за каждый рабочий день.Я хочу, чтобы транзакции с TypeCode of SERV или CONS были включены в запрос.

Образец данных:

CliendID    PurchaseDate    PaymentDate TypeCode    InvoiceAmt
ID1         1/3/2019        1/4/2019    SERV        430
ID2         1/3/2019        1/4/2019    PART        200
ID1         1/4/2019        1/9/2019    SERV        480
ID3         1/7/2019        1/8/2019    CONS        140
ID2         1/7/2019        1/9/2019    CONS        180
ID3         1/8/2019        1/9/2019    SERV        250
ID1         1/9/2019        1/10/2019   CONS        180

По сути логика должна быть суммой, если (PurchaseDate <= Date) и (PaymentDate)> = Date) и (TypeCode = SERV или TypeCode = CONS).

Ожидаемый результат:

Date        OutstandingBal
1/3/2019    430
1/4/2019    910
1/7/2019    800
1/8/2019    1050
1/9/2019    1090

Полученные даты таблицы могут быть либо каждый день, либо только днями с транзакциями, в зависимости от того, чтопроще.

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Это сложно.Вам нужно начать со списка дат.Тогда я бы пошел на коррелированный подзапрос в MS Access:

select d.dte,
       (select sum(oh2.invoiceamt)
        from orderhist as oh2
        where oh2.PurchaseDate <= d.dte and
              oh2.PaymentDate >= d.dte and
              oh2.TypeCode in ("SERV", "CONS")
       ) as outstandingbalance
from (select distinct purchasedate as dte
      from orderhist
     ) as d
group by d.dte;
0 голосов
/ 11 февраля 2019

OutstandingBal = sum (iif ((PurchaseDate <= Date) и (PaymentDate> = Date) и (TypeCode = SERV или TypeCode = CONS), invoiceAmt, 0))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...