💻 하나씩 차곡차곡/프로그래머스 (SQL)

[SELECT/LEVEL4] 오프라인/온라인 판매 데이터 통합하기 (MySQL/Oracle)

뚜루리 2023. 4. 7. 07:39
728x90
320x100

MySQL

SELECT DATE_FORMAT(SALES_DATE, '%Y-%m-%d') AS SALES_DATE
, PRODUCT_ID
, USER_ID
, SALES_AMOUNT
FROM (  SELECT ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE FROM ONLINE_SALE
        UNION ALL
        SELECT OFFLINE_SALE_ID, NULL, PRODUCT_ID, SALES_AMOUNT, SALES_DATE FROM OFFLINE_SALE ) A
WHERE YEAR(A.SALES_DATE) = 2022
AND MONTH(A.SALES_DATE) = 3
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID

Oracle

SELECT   TO_CHAR(SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE
        ,PRODUCT_ID
        ,USER_ID
        ,SALES_AMOUNT
FROM ONLINE_SALE
WHERE TO_CHAR(SALES_DATE, 'YYYYMM') = '202203'
UNION ALL
SELECT   TO_CHAR(SALES_DATE, 'YYYY-MM-DD') AS SALES_DATE
        ,PRODUCT_ID
        ,NULL AS USER_ID
        ,SALES_AMOUNT
FROM OFFLINE_SALE
WHERE TO_CHAR(SALES_DATE, 'YYYYMM') = '202203'
ORDER BY SALES_DATE, PRODUCT_ID, USER_ID
;
  • 조인 하는 건가 한참 생각하다가.....
728x90
320x100