SQL查询不返回预期结果

时间:2017-09-01 12:05:09

标签: sql sql-server json

我有一个表DelieveryCalendarMaster,其数据如下:

enter image description here

现在我正在使用此查询选择记录:

select * 
from [dbo].[DelieveryCalendarMaster]  
for json auto

它返回一个JSON结果,如下所示:

enter image description here

我想合并相同日期的对象,如下所示:

enter image description here

2 个答案:

答案 0 :(得分:1)

也许是这样的。因此,将GROUP BYJSON子查询一起使用。

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')