在合并具有相似值的另一列时合并一列

时间:2020-04-14 17:36:27

标签: sql-server concatenation rdbms

我一直在研究SQL Server存储过程,以找到下面的结果表中所示的解决方案。我的解决方案很接近,但是在我希望完全归为一列的列上得到了多个结果。

DECLARE @fiscal_year AS INT
SET @fiscal_year = '2016'

SELECT
    [ActionDate] AS [PPDate],
    SUM([GAL].[GCount]) AS [GCount],
    SUM([GAL].[LCount]) AS [LCount],
    CONCAT(SUM([GAL].[GCount]), ' Gain(s): (', [GAL].[GComments], '); ', SUM([GAL]. 
    [LCount]), ' Loss(es): (',  [GAL].[LComments], ')') AS [Details]
FROM
    [dbo].[TableA] [GAL]
GROUP BY
    [GAL].[ActionDate], [GAL].[GainComments], [Gal].[LossComments]

我有一张下表,

表A:

ID  ActionDate  GCount  GainRID GComments   LCount  LossRID LComments
1   2013-06-04  1       35      John        0       -1      NULL
2   2013-06-04  2       35      M & R       0       -1      NULL
3   2014-01-10  1       60      Paul        0       -1      NULL
4   2014-01-10  1       60      Mona        0       -1      NULL
5   2013-10-05  3       58      Tim         0       -1      NULL
6   2013-10-05  2       58      Ruby        0       -1      NULL
7   2013-10-05  0       -1      NULL        2       50      Jude & Mo
8   2013-10-05  0       -1      NULL        1       50      Frank
9   2013-10-05  0       -1      NULL        1       50      Linda
10  2014-01-10  0       -1      NULL        1       70      Eliz
11  2014-01-10  0       -1      NULL        1       70      Georgina
12  2014-01-10  0       -1      NULL        1       70      Christina
13  2013-10-05  0       -1      NULL        2       64      Joan & Mike
14  2013-10-05  0       -1      NULL        1       64      Mitch 

...,我想使用GainCount和LossCount字段上的SUM()函数按操作日期对它进行分组。详细信息字段由 GainReasonID,LossReasonID,Gain和Loss注释,这样表就可以像这样结束。

Results
PPDate      GCount  LCount  Details
2013-06-04  2       0       "(2) Gains: 2(35) -- John, M & R 
                             (0) Losses: "
2013-10-05  2       3       "(2) Gains: 2(58) -- Tim, Ruby
                             (3) Losses: 3(50) -- Jude & Mo, Frank, Linda , 
                                 2(64) -- Joan & Mike, Mitch"
2014-01-10  2       3       "(2) Gains: 2(60) -- Paul, Mona
                             (3) Losses: 3(70) -- Eliz, Georgina, Christina"

0 个答案:

没有答案