Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
汇总记录并添加注释sql中汇总的内容_Sql_Sql Server 2008 - Fatal编程技术网

汇总记录并添加注释sql中汇总的内容

汇总记录并添加注释sql中汇总的内容,sql,sql-server-2008,Sql,Sql Server 2008,我有一张简单的桌子,看起来像这样: company_Id user_Id price sub_price 123456 11111 200 NULL 123456 11111 500 NULL 456789 22222 300 NULL company_Id user_Id price sub_price 123456 11111

我有一张简单的桌子,看起来像这样:

company_Id    user_Id    price   sub_price
   123456      11111      200      NULL
   123456      11111      500      NULL
   456789      22222      300      NULL
 company_Id    user_Id    price   sub_price
   123456      11111      700      200,500
   456789      22222      300      300
我想把count(*)>=2的记录合并成一行,将价格加起来,但要注意在sub_price列中加起来的内容。所需的输出应如下所示:

company_Id    user_Id    price   sub_price
   123456      11111      200      NULL
   123456      11111      500      NULL
   456789      22222      300      NULL
 company_Id    user_Id    price   sub_price
   123456      11111      700      200,500
   456789      22222      300      300

有没有什么简单的方法来实现期望的输出?非常感谢您的帮助。

您可以使用
listag
将组中的元素转换为字符串:

SELECT ...
     , LISTAGG(price, ',') WITHIN GROUP (ORDER BY price) sub_price
  FROM ...
虽然
listagg
是SQL标准,但它是。然而,大多数数据库以不同的名称提供类似的功能,例如PostgreSQL和SQL Server中的
string\u agg
(自2017年起)或MySQL中的
group\u concat


更多信息:(如果不支持
listag
,也显示备选方案)

这是一种可能的解决方案; 有关将多行连接到单行的详细信息,您可以找到


用您正在使用的数据库标记您的问题。您正在使用什么?对不起,我正在使用MS SQL Server 2008非常感谢!!我喜欢你的方法!