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