SQL:当记录的类型不同时,如何对它们进行分组

SQL:当记录的类型不同时,如何对它们进行分组,sql,sql-server,Sql,Sql Server,我不知道我是否考虑过这项任务。但我知道我需要一些帮助。我必须修改一个查询,以便为同一个Transconfirid合并/汇总具有多种付款类型的记录 下面的数据显示了具有相同Transconfirid但有2种不同付款类型的前三条记录。这些记录应汇总其付款金额,付款类型应为“多” 其他记录具有相同的Transconfirid,但所有“ACH”的付款类型相同,这些记录不需要汇总/组合,它们可以保持分离,不需要分组 这是我可以得到帮助来完成的改变吗 我包含了一些示例数据,以及到目前为止的查询 资料 SQL

我不知道我是否考虑过这项任务。但我知道我需要一些帮助。我必须修改一个查询,以便为同一个Transconfirid合并/汇总具有多种付款类型的记录

下面的数据显示了具有相同Transconfirid但有2种不同付款类型的前三条记录。这些记录应汇总其付款金额,付款类型应为“多”

其他记录具有相同的Transconfirid,但所有“ACH”的付款类型相同,这些记录不需要汇总/组合,它们可以保持分离,不需要分组

这是我可以得到帮助来完成的改变吗

我包含了一些示例数据,以及到目前为止的查询

资料

SQL查询

SELECT 
    RIGHT('0000000000000000' + AccountNumber, 16) AS AcctNumber
,   PaymentAmount
,   RIGHT('0' + RTRIM(DATEPART(MM, InitiationDate)), 2) + '/' + RIGHT('0' + RTRIM(DATEPART(dd, InitiationDate)), 2) + '/' + RIGHT(DATEPART(yyyy, InitiationDate), 4) AS InitiationDate
,   PropertyTaxHeader.SourceType AS SourceType
,   InvoiceNumber
,   LTRIM(RTRIM(PaymentType)) AS PaymentType
,   TransConfirmID
FROM 
    PropertyTaxDetail
INNER JOIN PropertyTaxHeader
ON PropertyTaxDetail.HeaderID = PropertyTaxHeader.id
WHERE   
    PropertyTaxHeader.STATUS = 'Active'
    PaymentStatus NOT IN ('RETN', 'RFND', 'RETURNED', 'REFUNDED')   
ORDER BY TransConfirmID
基于示例数据的所需输出,这实际上只影响前3行

AcctNumber  PaymentAmount   InitiationDate  SourceType  InvoiceNumber   PaymentType TransConfirmID
80924401229 3958.91         12/17/2019      PRPONL      NULL            MULTI       1072667
70919228936 32.39           12/12/2019      PRPKUB      NULL            ACH         34676067987
70919228093 2086.69         12/12/2019      PRPKUB      NULL            ACH         34676067987
70826415014 4003.87         12/13/2019      PRPKUB      NULL            ACH         34728080729
70824306182 8819.61         12/13/2019      PRPKUB      NULL            ACH         34728080729
70913350587 259.54          12/13/2019      PRPKUB      NULL            ACH         34733928441
70913349150 5952.72         12/13/2019      PRPKUB      NULL            ACH         34733928441
70922346155 259.54          12/13/2019      PRPKUB      NULL            ACH         34737135402
70922345404 9225.62         12/13/2019      PRPKUB      NULL            ACH         34737135402
提前感谢您的帮助和/或阅读此问题

致以最良好的祝愿

下面的数据显示了具有相同Transconfirid但有2种不同付款类型的前三条记录。这些记录应汇总其付款金额,付款类型应为“多”

如果按Transconfirid分组,则可以在选择区域中说:

此查询不获取现金/比特币/visa/mastercard 4行的总和,而是生成2行,将不同支付类型的值汇总为一个值

如果有大量的值要卷起,请考虑添加一个表,该表将PayMyType的数百个值映射到各种相同的可追踪性值并加入其中,然后在联接表

的表列上分组。 下面的数据显示了具有相同Transconfirid但有2种不同付款类型的前三条记录。这些记录应汇总其付款金额,付款类型应为“多”

如果按Transconfirid分组,则可以在选择区域中说:

此查询不获取现金/比特币/visa/mastercard 4行的总和,而是生成2行,将不同支付类型的值汇总为一个值


如果你有很多值得考虑的值,请考虑添加一个表格,将PayMyType的数百个值映射到各种相同的可追踪性值并加入其中,然后在联接表

的表列上分组,因此,你在这里的预期结果是什么?那么你真正想说的是你想按账号分组吗?那么,你在这里的预期结果是什么?那么你真正想说的是你想按账号分组吗?
AcctNumber  PaymentAmount   InitiationDate  SourceType  InvoiceNumber   PaymentType TransConfirmID
80924401229 3958.91         12/17/2019      PRPONL      NULL            MULTI       1072667
70919228936 32.39           12/12/2019      PRPKUB      NULL            ACH         34676067987
70919228093 2086.69         12/12/2019      PRPKUB      NULL            ACH         34676067987
70826415014 4003.87         12/13/2019      PRPKUB      NULL            ACH         34728080729
70824306182 8819.61         12/13/2019      PRPKUB      NULL            ACH         34728080729
70913350587 259.54          12/13/2019      PRPKUB      NULL            ACH         34733928441
70913349150 5952.72         12/13/2019      PRPKUB      NULL            ACH         34733928441
70922346155 259.54          12/13/2019      PRPKUB      NULL            ACH         34737135402
70922345404 9225.62         12/13/2019      PRPKUB      NULL            ACH         34737135402
CASE WHEN MIN(PaymentType) <> MAX(PaymentType) THEN 'MULTI' ELSE MIN(PaymentType) END as PaymentType
CASE WHEN MIN(COALESCE(PaymentType, 'xxx')) <> MAX(PaymentType) THEN 'MULTI' ELSE MIN(PaymentType) END as PaymentType
  SELECT
    Country,
    CASE PaymentType 
      WHEN 'CASH' THEN 'Untraceable'
      WHEN 'Bitcoin' THEN 'Untraceable'
      WHEN 'Visa' THEN 'Traceable'
      WHEN 'Mastercard' THEN 'Traceable'
    END as Traceability,
    SUM(Amount) as SumAmount
  FROM
    data
  GROUP BY
    Country,
    CASE PaymentType 
      WHEN 'CASH' THEN 'Untraceable'
      WHEN 'Bitcoin' THEN 'Untraceable'
      WHEN 'Visa' THEN 'Traceable'
      WHEN 'Mastercard' THEN 'Traceable'
    END