を私はあなたがグループに必要があるとして、サブクエリせずにその期待される結果を得ることが可能であるとは思いません2つの異なるテーブルから格納することができます。両方とも、各グループに複数の行があり、グループ化する前にそれらを結合すると行が増えます。さらに、これらの結果を完全に外部結合する必要があります。これはmysqlがサポートされておらず、2つの反対側の左結合の和集合でそれをエミュレートする必要があります。したがって、基本的にこのテーブルスキーマでは、複雑なクエリを使用しなければならず、実生活の例よりも学問的な問題に似ています。
(SELECT st.store_name, s.month,
COALESCE(s.salestotal, 0) as salestotal,
COALESCE(p.purchasetotal, 0) as purchasetotal
FROM
store st
JOIN
(SELECT store_id, SUM(sales) as salestotal,
DATE_FORMAT(date, '%b %Y') as month
FROM sales
GROUP BY store_id, month) s
ON st.store_id = s.store_id
LEFT JOIN
(SELECT store_id, SUM(purchase) as purchasetotal,
DATE_FORMAT(date, '%b %Y') as month
FROM purchase
GROUP BY store_id, month) p
ON p.store_id = s.store_id AND p.month = s.month)
UNION
(SELECT st.store_name, p.month,
COALESCE(s.salestotal, 0) as salestotal,
COALESCE(p.purchasetotal, 0) as purchasetotal
FROM
store st
JOIN
(SELECT store_id, SUM(purchase) as purchasetotal,
DATE_FORMAT(date, '%b %Y') as month
FROM purchase
GROUP BY store_id, month) p
ON st.store_id = p.store_id
LEFT JOIN
(SELECT store_id, SUM(sales) as salestotal,
DATE_FORMAT(date, '%b %Y') as month
FROM sales
GROUP BY store_id, month) s
ON
p.store_id = s.store_id AND p.month = s.month)
ORDER BY month, store_name
クエリが機能しません。ところで、そこから結果を得るために、これらの既存のテーブルから新しいテーブルを作成するような他の方法があります – Joshi
どのように正確にそれがあなたのために働いていないかについて具体的にしてください。何らかのエラーメッセージが表示された場合は、ここにメッセージを書いてください。例えば、事例データと期待どおりの結果が得られない場合はどうすればいいですか?また、ウィンドウに収まらない完全なクエリーをコピーし、すべてのクエリーを表示するにはスクロールダウンする必要があります。 – piotrm