-2
SELECT
SUM(CASE
WHEN db1.card_type = 'debit' THEN 1
ELSE 0
END) AS DEBIT,
SUM(CASE
WHEN db1.card_type = 'credit' THEN 1
ELSE 0
END) AS CREDIT,
DATE_FORMAT(Latest, '%Y-%m') AS Dato
FROM
(SELECT
pp.debtor_id, pp.card_type, MAX(pp.created) AS Latest
FROM
capital.credit_card cc
JOIN capital.card_to_debtor ctd ON cc.id = ctd.card_id
AND debtor_id IN (SELECT
fs.debtor_id, fs.created, fs.reason
FROM
analysis.full_settlement fs
WHERE
((reason = 'BANK_PAYMENT'
OR fs.reason = 'CARD_PAYMENT')
AND fs.amount < 0)
OR fs.REASON = 'TRIVIAL_BALANCE'
OR fs.id = 13793327
OR fs.id = 7451808)
JOIN analysis.full_settlement fs ON fs.debtor_id = ctd.debtor_id
JOIN (SELECT
p.debtor_id, ccc.card_type, p.created
FROM
capital.payment p
JOIN capital.card_subscription cs ON cs.id = p.subscription_id
JOIN (SELECT
cc.id, ctd.card_id, cc.card_type, ctd.debtor_id
FROM
capital.card_to_debtor ctd
JOIN capital.credit_card cc ON cc.id = ctd.card_id) ccc ON ccc.card_id = cs.card_id
AND ccc.debtor_id = p.debtor_id) pp ON fs.debtor_id = pp.debtor_id
AND pp.created <= fs.created
GROUP BY pp.debtor_id , fs.created) db
JOIN
(SELECT
p.debtor_id, ccc.card_type, p.created
FROM
capital.payment p
JOIN capital.card_subscription cs ON cs.id = p.subscription_id
JOIN (SELECT
cc.id, ctd.card_id, cc.card_type, ctd.debtor_id
FROM
capital.card_to_debtor ctd
JOIN capital.credit_card cc ON cc.id = ctd.card_id) ccc ON ccc.card_id = cs.card_id
AND ccc.debtor_id = p.debtor_id) db1 ON db1.debtor_id = db.debtor_id
AND db1.created = db.Latest
GROUP BY YEAR(Latest) , MONTH(Latest)
Bitte seien Sie genauer. Auf welcher Linie tritt der Fehler auf? Welcher Operand? Lassen Sie Ihren Code nicht einfach hier ab und erwarten Sie, dass die Benutzer herausfinden, was Sie meinen. – waka
Er sagt es mir nicht. Was ziemlich frustrierend ist –
Dann müssen Sie die Abfrage verkleinern, um den Teil zu identifizieren, wo der Fehler auftritt. Es ist ziemlich schwer zu verstehen, was Sie mit allen Subselects zu tun versuchen. – waka