• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:サブクエリについて)

サブクエリの使い方と注意点

このQ&Aのポイント
  • サブクエリを使った集計処理の結果を表示する方法について解説します。
  • サブクエリの使い方や注意点を説明し、具体的な例を示します。
  • サブクエリを正しく使うためには、テーブルの関係性やデータの種類を理解することが重要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

サブクエリするなら外部結合でしょうね ただサブクエリ使わなくてもできます たとえば SELECT IODate ,SUM(IF(IO='収入',PRICE,0)) AS 収入 ,SUM(IF(IO='支出',PRICE,0)) AS 支出 FROM dailyio group by IODate とか SELECT IODate ,SUM((IO='収入')*PRICE) AS 収入 ,SUM((IO='支出')*PRICE) AS 支出 FROM dailyio group by IODate とか

koutake001
質問者

お礼

,SUM(IF(IO='収入',PRICE,0)) AS 収入 を ,SUM(IF(IO='収入',PRICE,0)) AS "収入" にしたら行けました!!! ありがとうございます!!

koutake001
質問者

補足

回答ありがとうございます 二つとも試してみたのですが ERROR 1064: You have an error in your SQL syntax. になってしまいます、 原因が解らないです><

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

外部結合ならこんな感じでいけるのかな SELECT DISTINCT D.IODate,収入,支出 FROM dailyio as D INNER JOIN (SELECT IODate,SUM(PRICE) AS 収入 FROM dailyio WHERE IO='収入' GROUP BY IODate) AS I1 ON D.IODate=I1.IODate INNER JOIN (SELECT IODate,SUM(PRICE) AS 支出 FROM dailyio WHERE IO='支出' GROUP BY IODate) AS I2 ON D.IODate=I2.IODate パフォーマンスを考えればもうちょっとチューニングが必要かも

koutake001
質問者

補足

回答ありがとうございます 試してみたところ ERROR 1064: You have an error in your SQL syntax. になりました・・・ん~~何でだろう・・・

関連するQ&A