この質問の反対の解決策を探しています。tableA を tableB として自己結合したいので、where 句は tableB の結果に影響しません。すべての顧客の合計と cancel_date='0000-00-00' の顧客の合計を取得したい テーブル tableA と tableB の場所を入れ替えたくありません。 tableA に基づくステートメントは他にもwhere
あります。select
SELECT
count(tableA.client_id) as c_total,
count(tableB.client_id) as all_c_total
FROM (tableA) LEFT JOIN tableA tableB ON tableA.client_id = tableB.client_id
WHERE tableA.`cancel_date` = '0000-00-00'
GROUP BY month(tableA.purch_date)
ORDER BY month(tableA.purch_date)
結果は次のようになります。
---------------------
c_total | all_c_total
---------------------
251 | 273
45 | 65
12 | 15
23 | 29