2016-02-15 3 views
0

У меня есть таблица из Accounts, имеющих столбцы:Как я могу установить псевдоним значения суммы столбца на основе другого столбца в той же таблице в sql?

Acc_Id, Transaction_TypeId, Amount

Я хочу, чтобы получить результат, как при Transaction_TypeId = 1 затем Сумма Сумма в «Всего авансовых платежей».

Else, когда Transaction_typeId = 2 затем Сумма Сумма, как 'Total Reciepts'

Вот мой SQL-запрос:

SELECT SUM(Amount) AS 'Sum' , Transaction_TypeId INTO #temp1 FROM AccountDetailTable WHERE Account_MasterId = 1 GROUP BY Transaction_TypeId 

SELECT Sum as 'Total Advance' from #temp1 WHERE #temp1.Transaction_TypeId = 1; 
SELECT Sum as 'Total Cash Receipts' FROM #temp1 WHERE #temp1.Transaction_TypeId = 2; 

DROP TABLE #temp1; 

, но этот запрос возвращает мне два различных набора результатов. Как я могу получить значения в одних и тех же наборах результатов?

+0

http://stackoverflow.com/questions/16364187/combining-2-sql-queries- и пробивной множества результатов в одном – mohan111

ответ

1

Используйте CASE выражение:

SELECT SUM(CASE WHEN Transaction_TypeId = 1 THEN somecolumn END) as [Total Advance], 
     SUM(CASE WHEN Transaction_TypeId = 2 THEN somecolumn END) as [Total Cash Receipts] 
FROM #temp1; 
1

Вы должны использовать CASE-ВЫРАЖЕНИЕМ так:

SELECT 
     sum(case when #temp1.Transaction_TypeId = 1 then amount else 0 end) as 'Total Advance', 
     sum(case when #temp1.Transaction_TypeId = 2 then amount else 0 end) as 'Total Cash Receipts' 
FROM #temp1 
Смежные вопросы