2017-08-14 62 views
0

我有兩個疑問這應該是工會(與laravel雄辯),但有一個名爲group_date重複列在查詢和我應該給他們一個聯盟兩個SQL查詢有一個相同的列(使用機鋒)

SELECT 
    to_char(CREATE_UTC_DATETIME, 'yyyy-mm-dd') AS group_date, 
    COUNT(*)         AS successful_transaction 
FROM "REPORT_EVENTS" 
WHERE "RESULT_CODE" = '0' AND "EVENT_TYPE" = 'BILL' 
GROUP BY to_char(CREATE_UTC_DATETIME, 'yyyy-mm-dd') 
ORDER BY "GROUP_DATE" DESC 

SELECT 
    to_char(CREATE_UTC_DATETIME, 'yyyy-mm-dd') AS group_date, 
    COUNT(*)         AS unsuccessful_transaction 
FROM "REPORT_EVENTS" 
WHERE "RESULT_CODE" = '1' AND "EVENT_TYPE" = 'BILL' 
GROUP BY to_char(CREATE_UTC_DATETIME, 'yyyy-mm-dd') 
ORDER BY "GROUP_DATE" DESC 
+0

想要實現什麼?加入上述查詢或得到它們的聯合? – mehran

+0

其實我想得到聯合結果,最後我應該有三列1-Group_date 2-successful_transaction 3-unsuccessful_transaction –

+0

從概念上講,union的結果與底層查詢具有相同的列,但是根據您尋找的結果,似乎你需要加入你的查詢。你的問題不清楚。 – mehran

回答

0

你不想UNION這裏,而是一個查詢其使用條件彙總:

SELECT 
    TO_CHAR(CREATE_UTC_DATETIME, 'yyyy-mm-dd') AS group_date, 
    SUM(CASE WHEN RESULT_CODE = '0' THEN 1 ELSE 0 END) AS successful_transaction, 
    SUM(CASE WHEN RESULT_CODE = '1' THEN 1 ELSE 0 END) AS unsuccessful_transaction 
FROM "REPORT_EVENTS" 
WHERE "EVENT_TYPE" = 'BILL' 
GROUP BY TO_CHAR(CREATE_UTC_DATETIME, 'yyyy-mm-dd') 
ORDER BY "GROUP_DATE" DESC 

我不會放棄任何雄辯/ Laravel代碼在這裏,但我相當肯定,你會需要一個自定義原始查詢來處理這個。所以,你的實際的PHP代碼或多或少只是以原始形式提供上述查詢。