我有一个表DelieveryCalendarMaster
,其数据如下:
现在我正在使用此查询选择记录:
select *
from [dbo].[DelieveryCalendarMaster]
for json auto
它返回一个JSON结果,如下所示:
我想合并相同日期的对象,如下所示:
答案 0 :(得分:1)
也许是这样的。因此,将GROUP BY
与JSON
子查询一起使用。
SELECT t1.date,
(
SELECT t2.id, t2.TimeSlot
FROM DelieveryCalendarMaster t2
WHERE t2.date = t1.date
FOR json auto
) as 'row'
FROM tab DelieveryCalendarMaster t1
GROUP BY t1.date
FOR json auto
实际上,它会在数组包装器中返回行数组,但是,it is not recommended在数组的情况下将其删除。
答案 1 :(得分:1)
你可以尝试一下它会帮助你。
SELECT [Date],
(SELECT [Date],[TimeSlot],[Availability],[DisplayText]
FROM [dbo].[DelieveryCalendarMaster] a
WHERE a.[Date] = e.[Date]
FOR JSON AUTO
) as Slots
FROM [dbo].[DelieveryCalendarMaster] e
Group BY e.[Date]
FOR JSON PATH, ROOT ('Dates')