SELECT [Month] =DATENAME(MONTH, M), Sponsor, Client, c, [dates] =STUFF((SELECT ', ' + RTRIM(DATEPART(DAY, [date])) FROM dbo. booking AS b WHERE b.Sponsor =x.Sponsor AND b.Client =x.Client AND b.[date]>=x.M AND b.[date] プレ>
スポンサー/クライアントの組み合わせで同じ日に 2 つの予約がある場合、日付番号がリストに 2 回表示されることに注意してください。
編集 私がテストした方法は次のとおりです。
DECLARE @booking TABLE( booking_id INT IDENTITY(1,1) PRIMARY KEY, [date] DATE, Sponsor VARCHAR(32), Client VARCHAR(32));INSERT @booking([date], Sponsor,クライアント) VALUES('20120312','AB','y'), ('20120315','AB','y'), ('20120318','AB','y'),('20120316', 'FE','x'), ('20120319','FE','x'), ('20120321','FE','x'), ('20120320','FE','x') ,('20120404','AB','x'), ('20120408','AB','x');SELECT [月] =DATENAME(MONTH, M), スポンサー, クライアント, c, [日付] =STUFF((SELECT ', ' + RTRIM(DATEPART(DAY, [date])) FROM @booking AS b WHERE b.Sponsor =x.Sponsor AND b.Client =x.Client AND b.[date]>=x.M AND b.[date] プレ>
結果:
Month Sponsor Client c 日付------- ------- ------- ------- ----------- ---3 月 AB y 3 12, 15, 18March FE x 4 16, 19, 20, 21April AB x 2 4, 8
プレ>