简体   繁体   English

带日期过滤器的SQL Server查询

[英]Sql Server query with date filter

I have a table like this; 我有一张这样的桌子;

ID int,
OrderedDate DateTime

I want to select only records of followed month. 我只想选择下个月的记录。

For example result set: 例如结果集:

ID    OrderedDate

110    January
110    February
200    January
200    February

How can I write this query? 如何编写此查询?

The question seems a bit unclear. 这个问题似乎还不清楚。 But the example makes it look like you are wanting to sort by ID then by month name. 但是该示例使您看起来好像想要按ID排序,然后按月份名称排序。 If so, then I think this will do it. 如果是这样,那么我认为这将会做到。 I don't have SQL Server to test it, so I'm sure it has syntax or other errors. 我没有SQL Server对其进行测试,因此我确定它具有语法或其他错误。

SELECT ID, DATENAME(month, OrderedDate) AS OrderedDate from table
       ORDER BY 1, MONTH( OrderedDate )

I think you want list of months that ID has orders in but with the months sorted by the month number instead of the name? 我想您想获取ID已下订单的月份列表,但月份按月份编号而不是名称排序?

create table test21210
(
    id int,
    OrderedDate datetime
)
go

insert test21210 (id, OrderedDate) values (110, '1/1/2010')
insert test21210 (id, OrderedDate) values (110, '1/5/2010')
insert test21210 (id, OrderedDate) values (110, '1/10/2010')
insert test21210 (id, OrderedDate) values (110, '2/2/2010')
insert test21210 (id, OrderedDate) values (110, '2/4/2010')
insert test21210 (id, OrderedDate) values (110, '2/6/2010')

insert test21210 (id, OrderedDate) values (200, '1/3/2010')
insert test21210 (id, OrderedDate) values (200, '1/5/2010')
insert test21210 (id, OrderedDate) values (200, '1/7/2010')
insert test21210 (id, OrderedDate) values (200, '1/9/2010')
insert test21210 (id, OrderedDate) values (200, '2/3/2010')
insert test21210 (id, OrderedDate) values (200, '2/5/2010')
insert test21210 (id, OrderedDate) values (200, '2/7/2010')
insert test21210 (id, OrderedDate) values (200, '2/9/2010')
go

with idmonth (id, MonthNumber) as
(
    select id, MONTH(ordereddate) as 'MonthNumber'
    from test21210
    group by id, MONTH(ordereddate)
)
select id, DATENAME(MONTH, STR(MonthNumber)+'/1/2000')
from idmonth
order by id, MonthNumber

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM