単純なテーブル (ID、Member_ID、支払い、日付、支払いシリアル、running_total) があります。データを別のシステムにエクスポートするために payment_serial が必要です。
必要なエクスポートは、メンバーが行ったすべての支払い (支払いと日付を表示) であり、payment_serial の順に並べ替えられ、1 行に並べられています。
これは私が使用した最初のクエリでした:
SELECT
`Member_ID`,
IF(`payment_serial`=1,`payment`,0) AS `p1`,
IF(`payment_serial`=1,`date`,0) AS `p1_date`,
IF(`payment_serial`=1,`ID`,0) AS `p1_ID`,
IF(`payment_serial`=2,`payment`,0) AS `p2`,
IF(`payment_serial`=2,`date`,0) AS `p2_date`
IF(`payment_serial`=2,`ID`,0) AS `p2_ID`,
FROM monthlies
WHERE `Member_ID` = 4198739
このクエリを使用すると、必要な支払いが表示されますが、それぞれが別の行に表示されます (次の段階で大きなインポートの問題が発生します)。
Member_ID p1 p1_date p1_ID p2 p2_date p2_ID ...
4198739 34.50 41143 214 0 0 0 ...
4198739 0 0 0 34.50 41176 583 ...
GROUP BY を追加しました:
SELECT
IF(`payment_serial`=1,`payment`,0) AS `p1`,
IF(`payment_serial`=1,`date`,0) AS `p1_date`,
IF(`payment_serial`=1,`ID`,0) AS `p1_ID`,
IF(`payment_serial`=2,`payment`,0) AS `p2`,
IF(`payment_serial`=2,`date`,0) AS `p2_date`,
IF(`payment_serial`=2,`ID`,0) AS `p2_ID`
FROM monthlies
WHERE `Member_ID` = 4198739
GROUP BY `Member_ID`
これにより、メンバーごとに1行が表示されますが、支払いごとではありません。
Member_ID p1 p1_date p1_ID p2 p2_date p2_ID ...
4198739 34.50 41143 214 0 0 0 ...
どこが間違っていますか?