テーブル設計に疑問が残りますが…
SELECT CHIKU, '雑誌', COUNT(*)
FROM table
WHERE DATE1 IS NOT NULL
GROUP BY CHIKU
UNION
SELECT CHIKU, 'ネット', COUNT(*)
FROM table
WHERE DATE2 IS NOT NULL
GROUP BY CHIKU
UNION
SELECT CHIKU, 'メール', COUNT(*)
FROM table
WHERE DATE3 IS NOT NULL
GROUP BY CHIKU
で、いいのでは。
お礼
質問が長すぎて途中できれてしまったので、返事は期待していなかったんですが、わかりにくい内容だったにもかかわらず、ご返答ありがとうございます! しかもバッチリいけました! 自力で考えていたのは、1つのselect分の中でcaseを使用して各日付から架空項目[BAITAI]にデータをセットし、group byでもcaseを使用するというものでした。これでもいけそうなんですが、かなりわかりにくい構造になってきていて、今回教えていただいたunionを使った方法の法が見た目もすっきりしてわかりやすいですね。 本当にありがとうございました!