2017-08-14 63 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代码或多或少只是以原始形式提供上述查询。