1

日付列のある行があります。毎週の終わりに最も近い値を見つける必要があります。

例:1月3〜9週の場合は1月4、5、6の値から、1月6日を返し、1月10〜16週の場合、10、11の値から1月11日を返します。

したがって、4,5,6,10,11 Janを含む行のうち、クエリはThu6とTue11Janを返す必要があります。

これが理にかなっていることを願っています。

4

1 に答える 1

1

より良い回答を得るには、どの RDBMS を使用しているかを述べる必要があります。

SQL Serverの場合、これを使用できます

select MAX(date)
from #tmp
group by DATEPART(wk, date)

注: SET DATEFIRST を使用して週の最初の曜日を変更しない限り、"週" は Sun-Sat から実行されます。

Mon-Sun を実行するには、代わりにこれを使用します

select MAX(date)
from #tmp
group by DATEPART(wk, date-1)

使用した試験台

create table #tmp (date datetime)
insert #tmp select '20110104'
insert #tmp select '20110105'
insert #tmp select '20110106'
insert #tmp select '20110110'
insert #tmp select '20110111'
于 2011-01-23T12:10:19.797 に答える