TRANSFORM Sum(total) SELECT dt_pay FROM sale GROUP BY dt_pay PIVOT paydiv;
위 SQL문이 어떤 상황에서 동작하는지 궁금하네요...
MS-SQL의 경우에 Analysys Service를 쓰지 않는다면 다음과 같이이
PIVOT을 만들어 사용하여야 합니다.
SELECT
dt_pay AS '날짜',
ISNULL(SUM(CASE WHEN paydiv = '현금' THEN Total END), 0) AS '현금 총액',
ISNULL(SUM(CASE WHEN paydiv = '카드' THEN Total END), 0) AS '카드 총액',
ISNULL(SUM(Total), 0) AS '현금 + 카드 총액'
FROM sale
GROUP BY dt_pay
MySQL은 잘 모르지만 메뉴얼을 살펴보니 한번의 쿼리로 불가능 하다고 판단됩니다.
(1) 우선 MySQL은 중첩 질의(중첩 질의를 이용하여도 위와 같은 결과를 얻을 수 있음)를 허용하지 않습니다.
(2) GROUP BY FUNCTION에서 지원하는 함수가 상당히 제한되어 있습니다.
따라서 프로그램적으로 해결하셔야 할 것 같습니다.
|