2016-12-23 4 views
-6

Мне нужно объединить два SQL-запроса, чтобы получить значения в одном месте. Я хочу показать год до даты и недели до даты показа сумм и единиц в одной таблице с одной кошкойОбъединить два запроса, чтобы получить комбинированное значение в 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` 

Второй запрос:

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 записывали все записи второго? – Aleksej

+0

Я хочу отдельные значения первого запроса и второго запроса с единицами и суммами. – 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` 
Смежные вопросы