簡體   English   中英

SQL SQL查詢ssrs服務器

[英]SQL SQL query ssrs server

我有帶有列的表,如下所示:

jobnum jobname description oncost
1        abc    xxxx       cost1
1        abc    xxxx       cost2

如何在一行中得到結果,如下所示:

jobnum jobname description oncost
1        abc    xxxx       cost1,Cost2

它確實取決於特定的數據庫,但是您需要對行進行分組,並匯總最后一列。 以下查詢在大多數當前數據庫上運行:

select jobnum, jobname, description, listagg(oncost,',')
  from my_table
  group by jobnum, jobname, description

在SQL Server 2017中,您可以使用string_agg()GROUP BYoncost之外的所有列。

SELECT t1.jobnum,
       t1.jobname,
       t1.description,
       string_agg(t1.oncost,
                  ',') oncost
       FROM elbat t1
       GROUP BY t1.jobnum,
                t1.jobname,
                t1.description;

對於較低版本,使用子查詢FOR XML作為string_agg()的替代品是解決此類問題的典型方法。

SELECT t1.jobnum,
       t1.jobname,
       t1.description,
       stuff((SELECT ',' + t2.oncost
                     FROM elbat t2
                     WHERE t2.jobnum = t1.jobnum
                           AND t2.jobname = t1.jobname
                           AND t2.description = t1.description
                           FOR XML PATH('')),
             1,
             1,
             '') oncost
       FROM elbat t1
       GROUP BY t1.jobnum,
                t1.jobname,
                t1.description;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM