0
我有一個這樣的表;帶有日期過濾器的SQL Server查詢
ID int,
OrderedDate DateTime
我想只選擇下個月的記錄。
例如結果集:
ID OrderedDate
110 January
110 February
200 January
200 February
如何我寫這篇文章的查詢?
我有一個這樣的表;帶有日期過濾器的SQL Server查詢
ID int,
OrderedDate DateTime
我想只選擇下個月的記錄。
例如結果集:
ID OrderedDate
110 January
110 February
200 January
200 February
如何我寫這篇文章的查詢?
我想你想要的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
這個問題似乎有點不清楚。但是這個例子使得它看起來像你想按ID排序,然後按月份名稱排序。如果是這樣,那麼我認爲這將做到這一點。我沒有SQL Server來測試它,所以我確定它有語法或其他錯誤。
SELECT ID, DATENAME(month, OrderedDate) AS OrderedDate from table
ORDER BY 1, MONTH(OrderedDate)
恐怕你的問題有點不清楚 - 請你詳細說明一下。 – CJM 2010-02-12 14:10:36