SQL Server запрос с датой фильтра - PullRequest
0 голосов
/ 12 февраля 2010

У меня есть такая таблица;

ID int,
OrderedDate DateTime

Я хочу выбрать только записи следующего месяца.

Например, набор результатов:

ID    OrderedDate

110    January
110    February
200    January
200    February

Какя могу написать этот запрос?

Ответы [ 2 ]

1 голос
/ 12 февраля 2010

Я думаю, вам нужен список месяцев, в которых 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
1 голос
/ 12 февраля 2010

Вопрос кажется немного неясным. Но пример показывает, что вы хотите отсортировать по идентификатору, а затем по названию месяца. Если так, то я думаю, что это сделает это. У меня нет SQL Server для его проверки, поэтому я уверен, что он имеет синтаксис или другие ошибки.

SELECT ID, DATENAME(month, OrderedDate) AS OrderedDate from table
       ORDER BY 1, MONTH( OrderedDate )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...