Ich habe die folgende Abfrage, die die Ergebnisse im Screenshot unten zur Verfügung stellt. Was ich versuche zu erreichen ist, dass das Endergebnis nur der letzte Datensatz für jede Rechnungsnummer ist.mysql sql wählen Sie den letzten Datensatz in jeder Gruppe
Ich habe mir andere Fragen im Zusammenhang mit der Auswahl des letzten Datensatzes nach Gruppe oder Untergruppe angeschaut und meine SQL-Kenntnisse sind nicht auf einem Niveau, wo ich herausfinden kann, wie ich die Lösungen anwenden könnte, die in diesen anderen Fragen bereitgestellt wurden.
Jede Hilfe wird geschätzt.
SELECT
`Invoice`.Amount AS amount,
zuora.convertDateTimeToGMTOffsetDateTime(`Invoice`.CreatedDate) AS created_date,
`Invoice`.InvoiceNumber AS invoice_number,
RatePlanCharge.chargeModel,
RatePlanCharge.chargeType,
`InvoiceItem`.`RatePlanChargeId`,
CASE
WHEN
PaymentMethod.type = 'CreditCard'
THEN
CONCAT(PaymentMethod.creditCardType,
' (',
REPLACE(PaymentMethod.creditCardMaskNumber,
'*',
''),
')')
WHEN
PaymentMethod.type = 'PayPal'
AND PaymentMethod.paypalEmail != ''
THEN
IF(PaymentMethod.paypalEmail != '',
CONCAT(PaymentMethod.type,
' (',
PaymentMethod.paypalEmail,
')'),
PaymentMethod.type)
WHEN PaymentMethod.type = 'WireTransfer' THEN 'Wire Transfer'
ELSE IF(Invoice.Amount = 0,
'None Required',
IF(PaymentMethod.type,
PaymentMethod.type,
'Unpaid'))
END AS payment_method,
IF(RatePlanCharge.chargeModel != 'Discount'
AND (RatePlanCharge.chargeType = 'Recurring'
OR RatePlanCharge.chargeType = 'Usage'),
TRUE,
FALSE) AS recurring
FROM
`InvoiceItem`
JOIN
`Invoice` ON `InvoiceItem`.`InvoiceId` = `Invoice`.`id`
LEFT JOIN
`RatePlanCharge` ON `RatePlanCharge`.`id` = `InvoiceItem`.`RatePlanChargeId`
LEFT JOIN
`InvoicePayment` ON `InvoicePayment`.`invoiceId` = `Invoice`.`id`
LEFT JOIN
`Payment` ON `Payment`.`id` = `InvoicePayment`.`paymentId`
LEFT JOIN
`PaymentMethod` ON `Payment`.`paymentMethodId` = `PaymentMethod`.`id`
LEFT JOIN
`CreditBalanceAdjustment` ON `CreditBalanceAdjustment`.`sourceTransactionId` = `Invoice`.`id`
WHERE
`Invoice`.`Status` = 'Posted'
AND Invoice.accountid = '2c92c0f84b786da2014bb934ef664f1b'
, die die folgenden Ergebnisse liefert. Ich mag die endgültigen Ergebnisse nur auf die Datensätze begrenzen, die in gelb (dem letzten Datensatz in jeder Gruppe von Rechnungsnummern) hervorgehoben werden: