Table_Name:Order_trans_detail
Order_id Order_date Order_qty Item_id order_amount
100 12-Jan-16 1 1001 20
101 13-Feb-15 4 1001 80
103 14-Mar-16 3 1001 60
104 16-Dec-15 9 1001 180
105 17-Jan-16 1 1001 20
106 18-Feb-16 4 1001 80
107 19-Feb-16 3 1001 60
108 20-Jan-15 9 1001 180
109 21-Mar-15 3 1001 60
110 21-Apr-15 3 1001 60
需要查询以确定在2016年2月份放置的订单数量,以显示月份名称和计数。
答案 0 :(得分:2)
您需要使用DATENAME
和YEAR
函数从日期中提取Month
名称和Year
,并在分组依据中使用它来获取count
< / p>
select DATENAME(MONTH,Order_date ),YEAR(Order_date), Count(*)
From Order_trans_detail
Group by DATENAME(MONTH,Order_date ),YEAR
要过滤记录,请添加Where子句
Where DATENAME(MONTH,Order_date ) = 'february' and YEAR(Order_date) = 2016
要以Mon-year
格式获得结果,请在Select
DATENAME(MONTH,Order_date )+'-'+cast(YEAR(Order_date) as char(4))
如果您使用SQL Server 2012+
连接月份和年份使用CONCAT
功能
CONCAT(DATENAME(MONTH,Order_date ),'-',YEAR(Order_date))
使用CONCAT
的好处是,在将Int
与Varchar