나는 이와 같은 테이블을 가지고 있습니다.날짜 필터가있는 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