0

次のクエリを使用して、データベースにデータがある月のリストを表示しています。

SELECT DATENAME(MONTH, EVENT_DATE) + ' ' + DATENAME(YEAR, EVENT_DATE) AS MonthYear
FROM [ODA].[dbo].[REPORT_CASE_EXT]
GROUP BY DATENAME(MONTH, EVENT_DATE) + ' ' + DATENAME(YEAR, EVENT_DATE)

次の並べ替えをクエリに追加すると、エラーが発生します。これらは groupby に表示されないためです。

SORT BY DATENAME(YEAR, EVENT_DATE), DATENAME(MONTH, EVENT_DATE)

この種を達成する方法はありますか?

4

1 に答える 1

1

と同じものを で使用すると、「機能」ORDER BYしますGROUP BY

ORDER BY
    DATENAME(MONTH, EVENT_DATE) + ' ' + DATENAME(YEAR, EVENT_DATE)

GROUP BYただし、アルファベット順ではなく時系列で注文できるようにするには、 にさらに情報を追加する必要があります (そうしないと、2 月は 1 月より前になります)。

GROUP BY
    datename(YEAR, EVENT_DATE),
    datename(MONTH, EVENT_DATE),
    datepart(YEAR, EVENT_DATE),
    datepart(MONTH, EVENT_DATE)
ORDER BY
    datepart(YEAR, EVENT_DATE),
    datepart(MONTH, EVENT_DATE)
于 2013-01-19T01:09:20.293 に答える