2016-12-23 17 views
-6

2つのSQLクエリをマージして1つの場所に値を取得する必要があります。私は、同じ猫で一つのテーブルに日付表示量と単位の日付と週に一年を表示したい2つのクエリをマージしてSQLの結合値を取得します

SQLクエリ

select 
    `EmpsID`, `CAT`, `CHK_DATE`, 
    SUM(AMOUNT) as CurrentAmount, 
    SUM(UNITS) as CurrentUnits 
from 
    `pays` 
where 
    `EmpsID` = 'SEMLAD01' and 
    `CAT` in ('Salary Pay', 'TRUCK ALLOWANCE', 'Expense Reimbursement', 'BONUS (Accrued)', 'Phone Reimbursement') and 
    date(`CHK_DATE`) = '2016-11-12' 
group by 
    `CAT` 

2番目のクエリ:

select 
    `EmpsID`, `CAT`, `CHK_DATE`, 
    SUM(AMOUNT) as ytdAmount, 
    SUM(UNITS) as ytdUnits 
from 
    `pays` 
where 
    `EmpsID` = 'SEMLAD01' and 
    `CAT` in ('Salary Pay', 'TRUCK ALLOWANCE', 'Expense Reimbursement', 'BONUS (Accrued)', 'Phone Reimbursement') and 
    date(`CHK_DATE`) <= '2016-11-12' 
group by 
    `CAT` 

表構造

EmpsID  CAT    YTDAmount YTDUnits currentAmount  currentunit 
SEMLAD01 BONUS     3000.00  0.00  0.00  0.00 
SEMLAD01 Expense    1307.90  0.00  50.00  
SEMLAD01 Phone Reimbursement 272.00  50.00  1840.00  0.00 
SEMLAD01 Salary Pay   60153.74 1840.00  0.00  0.00 
SEMLAD01 TRUCK ALLOWANCE  4246.26  0.00 
+0

UNION演算子を使用します。 – APC

+0

質問を投稿する前に[ask]と[mcve]を見てください。他の中で、どのDBMS?これまでに何を試みましたか?そしてMERGEで何が必要ですか?あなたは、最初のクエリUNIONのすべてのレコードを2番目のレコードのすべてのレコードにしますか? – Aleksej

+0

単位と金額で最初のクエリと2番目のクエリの別々の値が必要です。 – vallavan

答えて

0
 select `EmpsID`, `CAT`, `CHK_DATE`, SUM(AMOUNT) as CurrentAmount,SUM(UNITS) as CurrentUnits 
    ,sum(case when date(`CHK_DATE`) = '2016-11-12' then AMOUNT else 0 end) as '2016-11-12Amount' , 
     ,sum(case when date(`CHK_DATE`) = '2016-11-12' then UNITS else 0 end) as '2016-11-12Units' , 
    from `pays` where `EmpsID` = 'SEMLAD01' and 
    `CAT` in ('Salary Pay', 'TRUCK ALLOWANCE', 'Expense Reimbursement', 
    'BONUS (Accrued)', 'Phone Reimbursement')and date(`CHK_DATE`) <= '2016-11-12' 
    group by `CAT` 
関連する問題