Нет ответа на прикрепленный запрос? - PullRequest
0 голосов
/ 04 ноября 2019

Мои данные в двух таблицах. Формат этих двух таблиц ниже:

Table Transaction

Table Customer

Я должен был выяснить,для всех клиентов в возрасте от 25 до 35 лет выясните, каков общий чистый доход, полученный этими клиентами за последние 30 дней транзакций с максимальной даты транзакции, доступной в данных?

Я написал код ниже

SELECT      
TOP 1       YEAR(T2.TRAN_DATE)[TRAN_YEAR] ,MONTH(T2.TRAN_DATE)[TRAN_Month],
            SUM(T2.Total_amt)[REVENUE]  
FROM        TRANSACTIONS T2
RIGHT JOIN  CUSTOMER T1
ON          T1.CUSTOMER_ID = T2.CUST_ID
WHERE       DATEDIFF(YY, T1.DOB, GETDATE()) BETWEEN 25 AND 35
GROUP BY    YEAR(T2.TRAN_DATE),MONTH(T2.TRAN_DATE)
ORDER BY    YEAR(T2.TRAN_DATE) DESC, MONTH(T2.TRAN_DATE) DESC

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

Я не смог понять свою ошибку.

1 Ответ

1 голос
/ 04 ноября 2019

Я ожидаю запрос, подобный следующему:

SELECT SUM(T.Total_amt) as REVENUE] 
FROM TRANSACTIONS T JOIN
     CUSTOMER c
     ON c.CUSTOMER_ID = t.CUST_ID
WHERE c.DOB >= DATEADD(YEAR, -35, GETDATE()) AND
      c.DOB < DATEADD(YEAR, -24, GETDATE()) AND
      t.TRAN_DATE > DATEADD(DAY, -30, GETDATE());

Обратите внимание, что здесь используются прямые сравнения дат, а не DATEDIFF(). Обычно они более точные.

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