从 select 语句在 SQL 服务器中创建视图

Creating a view in SQL Server from select statement

我有 select 报表,其中 returns 每天的收入或结果以两种货币表示:

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

我需要创建一个视图来显示这个人每天总共有多少钱

在 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