SAP HANA - Как я могу создать динамический запрос, который смотрит на х дату, дает мне все записи за 2 недели до и после х даты? - PullRequest
0 голосов
/ 11 апреля 2019

Я использую SAP HANA и у меня есть две таблицы. Обе таблицы имеют

  1. Customer_Number
  2. Transaction_Number
  3. TRANSACTION_DATE
  4. Transaction_Week
  5. Проводят
  6. Means_of_Payment

Единственная разница в типе информации между таблицами - это Means_of_Payment. В таблице 1 транзакции оплачиваются дебетовой картой или кредитной картой, а в таблице 2 транзакции оплачиваются подарочной картой или ваучером. Клиенты в таблице 1 такие же, как клиенты в таблице 2

Фокус: клиенты используют подарочные карты / ваучеры в основном в апреле

Моя цель: что тратит клиент за 2 недели до своей транзакции в апреле и через 2 недели после своей транзакции в апреле. Идея состоит в том, чтобы увидеть, изменились ли и как их расходы после использования подарочной карты / ваучера

Проблема: дата транзакции каждого клиента в апреле будет отличаться, поэтому мне нужно создать динамический запрос, который будет искать дату транзакции клиента в апреле (таблица 2) и давать мне их расходы за 2 недели до и после этой даты (таблица 1), и я действительно не уверен, как это сделать.

Ожидаемый результат: Дата транзакции клиента 1 апреля = 1/04/2018, поэтому соответствующий диапазон дат - за 2 недели до 1/04/2018 и через 2 недели после. Клиент 2 апреля дата транзакции = 5/04/2018, поэтому его соответствующий диапазон дат за 2 недели до 5/04/2018 и 2 недели после.

Я хочу вернуть номер транзакции, тратить и Means_of_payment в соответствующем диапазоне дат каждого клиента

Есть идеи?

Заранее спасибо, я ценю вашу помощь 10

У меня есть только код, который соединяет две таблицы

SELECT *
FROM "Table2" AS A
LEFT JOIN "Table1" AS B
ON A.CUSTOMER = B.CUSTOMER_NUMBER

1 Ответ

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

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

SELECT cards.*
FROM "Table2" AS coupons

    JOIN "Table1" AS cards
ON coupons.CUSTOMER = coupons.CUSTOMER_NUMBER
    and cards.Transaction_Date between ADD_DAYS(coupons.Transaction_Date, -14) and 
              ADD_DAYS(coupons.Transaction_Date, 14)
...