gpt4 book ai didi

sql-server - 如何使用 select 语句中的函数按日期的月份进行分组

转载 作者:行者123 更新时间:2023-12-04 01:00:58 25 4
gpt4 key购买 nike

在使用函数时,我在按日期月份分组时遇到问题。它之前可以工作,但查询不太复杂,因为我现在使用的函数使用从当月开始的滚动年份。这是我的代码。

SELECT
CASE
WHEN DATEDIFF(mm,dbo.fn_firstofmonth(getdate()), dbo.fn_firstofmonth(D.expected_date)) < 12
THEN DATEDIFF(mm,dbo.fn_firstofmonth(getdate()), dbo.fn_firstofmonth(D.expected_date)) + 1
ELSE 13 END AS [Expected Month],
P.probability AS [Category], COUNT(O.id) AS [Customers]
FROM opportunity_probability P
INNER JOIN opportunity_detail D ON D.probability_id = P.id
INNER JOIN opportunities O ON D.opportunity_id = O.id
INNER JOIN
(
SELECT opportunity_id
FROM opportunity_detail
GROUP BY opportunity_id
) T ON T.opportunity_id = O.customer_id
GROUP BY P.probability, MONTH(D.expected_date)
ORDER BY P.probability, MONTH(D.expected_date)

如果我在 GROUP BY 中有 D.expected_date,它就可以工作,但我需要在此日期的月份进行分组,因为它不能正确地传递数据。

最佳答案

您始终可以删除分组依据,然后将整个选择放入另一个选择中,然后按外部选择分组:

select t.A, t.B from (select A, datepart(month, b) as B) t group by t.A, t.B

这样您就可以像处理普通字段一样处理月份字段。

示例还远未完成,但应该可以帮助您上路。

关于sql-server - 如何使用 select 语句中的函数按日期的月份进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32498522/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com