결산 관련 쿼리를 수정하고 있습니다.
누가 구조를 이렇게 잡아두었는지도 모르겠고
왜 이렇게 잡았는지도 모르겠으나
결국엔 스키마 수정 없이 쿼리로 해결을 해야한다는 결론이지요 ^^;
SELECT
A.DOMAIN_TOTAL, B.HOSTING_TOTAL, C.DESIGN_TOTAL, D.SHOP_TOTAL, E.CONTENT_TOTAL, F.DEPOSIT,
(A.DOMAIN_TOTAL+B.HOSTING_TOTAL+C.DESIGN_TOTAL+D.SHOP_TOTAL+E.CONTENT_TOTAL+F.DEPOSIT) AS TOTAL
FROM (
(SELECT SUM(total) AS DOMAIN_TOTAL FROM money WHERE `date`='2007-07-06' AND service='domain') A,
(SELECT SUM(total) AS HOSTING_TOTAL FROM money WHERE `date`='2007-07-06' AND service='hosting') B,
(SELECT SUM(total) AS DESIGN_TOTAL FROM money WHERE `date`='2007-07-06' AND service='design' AND (service2 NOT IN (2,3,4))) C,
(SELECT SUM(total) AS SHOP_TOTAL FROM money WHERE `date`='2007-07-06' AND service='shop') D,
(SELECT SUM(total) AS CONTENT_TOTAL
FROM (
(SELECT total FROM money WHERE `date`='2007-07-06' AND service='life') UNION ALL
(SELECT total FROM money WHERE `date`='2007-07-06' AND service='comics') UNION ALL
(SELECT total FROM money WHERE `date`='2007-07-06' AND service='movie')
) X) E,
(SELECT SUM(total) AS DEPOSIT FROM money WHERE `date`='2007-07-06' AND service='deposit') F
)
몇시간을 소비하여 이런식으로 서비스별로 하루의 결산치가 나오게끔 만들었습니다.
워낙에 정체를 알수없는 필드들이 많아서..
예.. 참 무식하고 성의없는 쿼리지요.. ^^;;
그래도 이게 좀 나아진 거에요... 흐흐..
어려움을 겪고있는 부분은,
이렇게하여 하루치의 결과는 뽑을 수 있습니다만
기간이 들어갔을때에는 날짜별로 GROUP BY 를 해줘야 할것같은데 그게 참 어려워 헤매고 있네요.
위의 쿼리를 보시면 아시겠지만 하나의 테이블에서 다 이뤄지는 겁니다 ^^;;
고수님들의 한말씀 부탁드립니다.
|