데이터베이스를 쿼리하여 시스템의 모든 고객에 대해 가장 높은 매출 월을 찾습니다. 데이터가있는 모든 연도의 고객에게 월간 매출을 끌어 오는 쿼리가 있습니다. 그러나 나는이 데이터에서 월 매출액이 가장 높은 방법을 찾아내는 데 어려움을 겪고 있습니다.SQL 쿼리 : 고객의 가장 높은 매출 월/연도 찾기
데이터베이스는 SQL Server 2008 R2입니다. 열은 고객 이름, 연도, 월 및 수익입니다. Row_Number()를 사용해 보았는데 고객 이름/연도별로 분할을 시도하고 수익별로 정렬을 시도했습니다. 그러나 그것은 효과가 없었습니다. 어쩌면 내가 실수를 저질렀을거야.
다음은 기본 쿼리를 작성하는 방법입니다.
Select Customer, Year(orderdatetime) as Year, Month(orderdatetime) as Month, SUM(Revenue)
From Orders
Group By Customer, Year(orderdatetime), Month(orderdatetime)
이
내가 ROW_NUMBER()를WITH Max_Revenue AS
(
Select Customer, Year(orderdatetime) as Year, Month(orderdatetime) as Month, SUM(Revenue), RowNumber = ROW_NUMBER() OVER(PARTITION By Year Order By Revenue DESC)
From Orders
Group By Customer, Year(orderdatetime), Month(orderdatetime)
)
Select Max_Revenue.Customer, Max_Revenue.Year, Max_Revenue.Month, Max_Revenue.Revenue
From Max_Revenue
Where Max_Revenue.RowNumber = 1
Order By Max_Revenue.Customer asc
내가 돌아올 데이터는 같은 것입니다 사용하려고하는 방법입니다 : 출력이
Customer Month Year Revenue
ABC 5 2012 200
XYZ 7 2012 800
그대로 내가 원하는 무엇
Customer Month Year Revenue
ABC 2 2012 100
ABC 3 2013 150
ABC 5 2012 200
XYZ 4 2011 500
XYZ 6 2012 650
XYZ 7 2012 800
그래서 모든 고객의 가장 좋은 달 및 respe 수익면에서 1 년입니다. 수익 DESC으로 고객 주문
(선택 같이 최대 "최대"뭔가를 사용해보십시오 수익) 테이블 – zxc