Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Учет операций в течение 10дней после выдачи карты  [new]
Finswimmer
Member

Откуда: Москва
Сообщений: 40
Добрый день!
Только начинаю изучать SQL, поэтому прошу помочь в вопросе.
Есть 2 таблицы:
1-я
CARD (Информация по картам)
Нужные тут поля
DATE (дата выдачи карты)
Customer_ID (ID клиента)
Customer_FIO (ФИО клиента)
ID (ID Карты)

2-я
CARD_OPERATION (операции по карте)
Тут важные поля
TRANS_DATE(дата операции)
AMOUNT (Сумма операции)
Customer_ID (ID клиента)
ID_CARD (ID Карты)

Собственно вопрос в следующем. Как правильно построить запрос чтобы получить суммы по операциям, в течение 10 дней с момента выдачи карты, при этом сумма операции более 100 руб.

Вторую часть смог реализовать с помощью CASE, а вот ограничить период что-то не могу придумать как
+
SELECT
          a.CUSTOMER_FIO
        , a.CUSTOMER_ID
        , SUM
                    (
                    CASE
                              WHEN f.AMOUNT > 100
                              THEN f.AMOUNT
                              ELSE 0
                    END
                    )
          SUMM
FROM
          CARD a
          LEFT JOIN
                    CARD_OPERATION f
          ON
                    f.ID_CARD = a.ID
GROUP BY
          a.CUSTOMER_FIO
        , a.CUSTOMER_ID
16 дек 19, 16:57    [22041429]     Ответить | Цитировать Сообщить модератору
 Re: Учет операций в течение 10дней после выдачи карты  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31366
Finswimmer
Собственно вопрос в следующем. Как правильно построить запрос чтобы получить суммы по операциям, в течение 10 дней с момента выдачи карты, при этом сумма операции более 100 руб.
Дополнить условие связывания:
          LEFT JOIN
                    CARD_OPERATION f
          ON
                    f.ID_CARD = a.ID
                    AND f.TRANS_DATE >= a.DATE
                    AND f.TRANS_DATE < dateadd(d, 10, a.DATE)
16 дек 19, 18:08    [22041478]     Ответить | Цитировать Сообщить модератору
 Re: Учет операций в течение 10дней после выдачи карты  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31366
Finswimmer
Вторую часть смог реализовать с помощью CASE, а вот ограничить период что-то не могу придумать как
Зачем CASE, нужно просто добавить условие выборки записей:
          LEFT JOIN
                    CARD_OPERATION f
          ON
                    f.ID_CARD = a.ID
                    AND f.TRANS_DATE >= a.DATE
                    AND f.TRANS_DATE < dateadd(d, 10, a.DATE)
                    AND f.AMOUNT > 100
16 дек 19, 18:09    [22041480]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить