2015-03-18 2 views
1

У меня есть оператор выбора, который возвращает доход или результат на каждый день в двух валютах:Создание представления в SQL Server из отборного заявления

SELECT SUM(CASE 
      WHEN C.Name LIKE 'B%' AND T.Income = 0 THEN 0-T.Amount 
      WHEN C.Name LIKE 'B%' AND T.Income = 1 THEN T.Amount 
      ELSE 0 
      END) AS AmountBYR 
     ,SUM(CASE 
      WHEN C.Name LIKE 'U%' AND T.Income = 0 THEN 0-T.Amount 
      WHEN C.Name LIKE 'U%' AND T.Income = 1 THEN T.Amount 
      ELSE 0 
      END) AS AmountUSD 
     ,CR.Date 
FROM [FinanceLabkovich].[dbo].[Transactions] T 
JOIN [FinanceLabkovich].[dbo].[Bills] B ON B.BillID=T.BillID 
JOIN [FinanceLabkovich].[dbo].[Currencies] C ON C.CurrencyID=B.CurrencyID 
RIGHT JOIN [FinanceLabkovich].[dbo].[CurrencyRates] CR ON CR.Date=T.Date 
GROUP BY CR.Date 
ORDER BY CR.Date 

http://img.prntscr.com/img?url=http://i.imgur.com/Dzla7rR.png

Мне нужно создать представление, которые показывают, сколько денег человек имеет в общей сложности за каждый день

http://img.prntscr.com/img?url=http://i.imgur.com/fU2bnM6.png

+0

возможно дубликат [СИНТАКСИС CREATE VIEW SQL SERVER] (HTTP : //stackoverflow.com/questions/23878954/syntax-create-view-sql-server) –

+0

@MikeD. этот выглядит как заданный итоговый вопрос. –

+0

Мне нужно создать представление, которое подсчитывает общее количество денег за каждый день – Vasily

ответ

1

в SQL Server 2012 и более поздних версиях можно вычислить трансф т баланс, используя бегущую сумму:

sum(column_name) over (order by date) as running_sum 

Чтобы найти только работает суммы в конце концов, вы могли бы использовать подзапрос:

select * 
from (
     select customer_id 
     ,  sum(amount) over (
        partition by customer_id 
        order by [date]) as balance 
     ,  row_number() over (
        partition by customer_id, cast([date] as date) 
        order by [date] desc) as rn 
     from Transactions 
     ) as SubQueryAlias 
where rn = 1 -- Only latest row per customer per day 
+0

Большое спасибо! – Vasily

Смежные вопросы