Вложенный JSON из базы данных

У меня есть следующие данные в моей базе данных.

Date        Computer               Hits
==========  =====================  =======
2014-11-04  one                     1
2014-11-04  two                     249
2014-11-05  one                     200
2014-11-05  two                     50
2014-11-06  one                     75
2014-11-06  two                     100
2014-11-07  two                     50

Который будет генерироваться случайным образом в базе данных

мне нужно создать вложенный JSON

что-то вроде

var computer = { "one" : [          { "Hits" : 1},

                                    { "Hits":200},

                                    { "Hits":75}
                                  ],                            
                  "two"       : [  { "Hits" : 1},

                                    { "Hits":200},

                                    { "Hits":75}
                                  ] // End "sales" Array.
                } 

Мне нужно это в следующем формате, так как я создаю JQX-диаграмму с накопленными рядами линий, я пытался использовать пары ключ-значение и считывать их непосредственно из базы данных, но проблема в том, что он дает только одну строку, может кто-нибудь предложить способ

1 ответ

Вы можете использовать "group by" и "stuff" в sql, чтобы получить группу со списком совпадений.

Затем вы можете манипулировать значениями далее в коде, который вы используете для вызова sql, чтобы получить вложенный json.

select computer, 
 STUFF((SELECT '{Hits: ' + cast(value as varchar(10)) + '},'
       FROM @computerTable b 
       WHERE b.computer = a.computer
      FOR XML PATH('')), 1, 0, '')
 from @computerTable a
group by computer
Другие вопросы по тегам