タイトルには、クエリから必要なものが十分に記述されていません。MySqlクエリを使用して、顧客の注文合計を選択します。
@sgeddesは、次のクエリを考え出すのに役立ちましたが、私のニーズを満たすためにクエリに変更が必要です。私はまた、削除された顧客を選択しないようにクエリを少し修正しましたが、このクエリが書かれている方法が私のSQL知識から外れているために変更することができませんでした。
SELECT d.customer_id,d.fname,d.lname,d.isactive,
o.lastdate,
Count(o2.order_id) AS 'total_orders'
FROM customers d
LEFT JOIN (SELECT MAX(order_id) order_id, customer_id
FROM orders
GROUP BY customer_id) m on d.customer_id = m.customer_id
LEFT JOIN orders o on m.order_id = o.order_id
LEFT JOIN orders o2 on d.customer_id = o2.customer_id
AND o2.balance > 0 AND o2.isActive > -1
WHERE d.user_id =945766 AND d.isActive > -1
AND o2.customer_id IS NULL
GROUP BY d.customer_id
次の3つの要件が必要です。 isActiveと
顧客のための- カウント注文> -1(-1 =削除)受注テーブルの
- お客様ません(なし注文を顧客)。 isActive = 0とそれに対応するためで
- お客様は私が必要とするすべてはのisActive = 0と顧客であるので、簡単に
をカウントし、TOTAL_ORDERS列の実際の#を取得します。
私の要求を理解するための私の試みでは、私はSqlFiddleを作成しました。
このクエリは他の目的のために設計されていますが、簡単なクエリが必要な場合でも編集することができます...あなたの要件は何かをお知らせください。 –
3つの別々の結果に対して3つの別々のクエリが必要ですか? – Strawberry
@strawberry。私はUNIONによってマージされた3つの別々のクエリを使用していました。以前のスレッドでsgeddesが提案したように、代わりにクエリのバージョンを使用しました。 – wilson382