サブクエリが上手く行きません、何が間違ってるのでしょうか?
select IODate,
(select sum(Price) as "収入" from dailyio where IO='収入' group by IODate) ,
(select sum(Price) as "支出" from dailyio where IO='支出' group by IODate)
from dailyio
group by IODate;
dailyio-------------------------------------
フィールド名 型
Code bigint(20)
IODate date
IO varchar(255)
Koumoku varchar(255)
Syousai varchar(255)
Memo text
Price bigint(20)
-----------------------------------------------
ご多忙中とは存じますが宜しくご教授お願いします。
サブクエリするなら外部結合でしょうね
ただサブクエリ使わなくてもできます
たとえば
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
とか
質問者
お礼
,SUM(IF(IO='収入',PRICE,0)) AS 収入
を
,SUM(IF(IO='収入',PRICE,0)) AS "収入"
にしたら行けました!!!
ありがとうございます!!
質問者
補足
回答ありがとうございます
二つとも試してみたのですが
ERROR 1064: You have an error in your SQL syntax.
になってしまいます、
原因が解らないです><
外部結合ならこんな感じでいけるのかな
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
パフォーマンスを考えればもうちょっとチューニングが必要かも
質問者
補足
回答ありがとうございます
試してみたところ
ERROR 1064: You have an error in your SQL syntax.
になりました・・・ん~~何でだろう・・・
お礼
,SUM(IF(IO='収入',PRICE,0)) AS 収入 を ,SUM(IF(IO='収入',PRICE,0)) AS "収入" にしたら行けました!!! ありがとうございます!!
補足
回答ありがとうございます 二つとも試してみたのですが ERROR 1064: You have an error in your SQL syntax. になってしまいます、 原因が解らないです><