2017-08-14 9 views
0

私は(laravelの雄弁と)労働組合であるべき2つのクエリを持っていますが、そこgroup_dateと呼ばれる重複したカラムは、両方のクエリであると私はそれらの1(雄弁を使用して)1と同じ列を持つ連合の2つの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

実際には、私は最後に3つの列を持っている必要があります、結局のところ結果を得たい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コードは多かれ少なかれ未処理の形で上記のクエリを持つことになります。

関連する問題