SELECT
DAY(table_A.PaymentDate) as date1 ,
(CASE
WHEN MONTH(table_A.PaymentDate) = MONTH(CURRENT_TIMESTAMP)
THEN CAST(SUM(table_A.Total_Amount) As INT)
ELSE 0
END) AS This_month_CNT,
(CASE
WHEN MONTH(table_A.PaymentDate) = MONTH(CURRENT_TIMESTAMP) - 1
THEN CAST(SUM(table_A.Total_Amount) AS INT)
ELSE 0
END) AS last_month_CNT
FROM
Tbl_Pan_Paymentdetails table_A
FULL OUTER JOIN
Tbl_Pan_Paymentdetails table_B ON table_A.PaymentDate = table_B.PaymentDate
WHERE
YEAR(table_A.PaymentDate) = YEAR(CURRENT_TIMESTAMP)
AND table_A.PaymentDate >= DATEADD(MONTH, -2, GETDATE())
GROUP BY
DAY(table_A.PaymentDate),
MONTH(table_A.PaymentDate)
ORDER BY
DAY(table_A.PaymentDate) ;
-5
A
ответ
1
Не уверен, что я полностью понимаю.
WHERE YEAR(table_A.PaymentDate) = YEAR(CURRENT_TIMESTAMP) AND
table_A.PaymentDate >= DATEADD(MONTH, -2, GETDATE())
Здесь вы (1) сравнение Год элементы вашей даты платежа с CURRENT_TIMESTAMP
, и (2) убедившись, что дата выплаты больше, чем за последние 2 месяца на основании GETDATE()
?
Не знаете, почему вы используете как CURRENT_TIMESTAMP
, так и GETDATE()
. В любом случае, я думаю, что вторая часть этого оператора WHERE делает то, что вы хотите.
Если текущая дата 31 января 2015 года, ваша логика в настоящий момент не вернет никаких записей с декабря 2014 года. Первая часть вашего оператора where отфильтровывает их. Если вы действительно хотите последние 2 месяца, удалите из инструкции WHERE
YEAR(table_A.PaymentDate) = YEAR(CURRENT_TIMESTAMP) AND
Смежные вопросы
- 1. sql запрос для получения данных за последние 3 месяца
- 2. Запрос SQL Server для получения второго четверга месяца
- 3. Запрос SQL Server 2008 для запуска за последние 8 недель
- 4. SQL Последние три месяца
- 5. Запрос данных за последние два года с поля DATETIME
- 6. Запрос Mysql для проверки узлов, созданных за последние 3 месяца
- 7. SQL-запрос для получения данных
- 8. SQL-запрос для свертывания данных за последние 7 дней
- 9. Как написать запрос для получения последних записей за 3 месяца в linq для sql?
- 10. Невозможно получить данные за последние два месяца с использованием SQL-запроса
- 11. Как просмотреть сортировки в базе данных за последние три месяца?
- 12. SQL-запрос за все дни месяца
- 13. hql запрос для получения записи за последние 12 часов
- 14. SQL-запрос для получения только последних данных
- 15. Работа агента SQL Server за первые 4 месяца месяца
- 16. SQL-запрос к группе за последние 3 месяца данных по отдельным месяцам и подсчетам
- 17. Выберите запрос для получения данных с SQL Server
- 18. SQL Server 2 способа получения итогов месяца, но разные результаты
- 19. получить отчеты за последние два месяца за исключением сегодняшнего списка записей
- 20. MySQL выберите записи за последние 3 месяца
- 21. данных SQL Server за последние 30 дней и все данные
- 22. Получить счет счетов за последние три месяца?
- 23. Mongo: запрос для получения отдельных данных за день за последние 30 дней
- 24. MySQL показывая последние два месяца продаж
- 25. фильтр sql-запрос за последние 24 часа
- 26. Sql Запрос для получения следующих данных
- 27. SQL Server: как вернуть значение за последние 6 месяцев
- 28. SQL Server: запрос для возврата имени месяца вместо номера
- 29. Как уменьшить SQL-запрос за последние 30 дней?
- 30. Я пытаюсь написать запрос для получения имени месяца в SQL Server 2012
Я думаю, что ваш вопрос нуждается в более подробном объяснении того, что вы пытаетесь сделать. –
Итак, каков ваш вопрос и в чем проблема, с которой вы столкнулись? – MusicLovingIndianGirl
Когда вы говорите «последние два месяца», вы имеете в виду последние два месяца с сегодняшнего дня (т. Е. Если сегодня было 15 августа 2015 года, вы ищете 15 июня - 15 августа 2015 года)? Или вы имеете в виду последние два полных месяца (1 июня - 31 июля 2015 года)? Потому что в вашем запросе есть некоторая путаница в границах месяца/года, что затрудняет определение того, чего вы пытаетесь достичь. –