如何使用where子句获取并合并指定的数量,并在一个表中进行3次


SELECT OfferSK, DateSK, UsedAmount, PaidAmount, ChargedAmount
FROM
(SELECT OfferSK, DateSK, Amount as UsedAmount
FROM dwh.FactExtraExpenses
where FinOperationSK = 2
UNION ALL 
SELECT OfferSK, DateSK, Amount as PaidAmount
FROM dwh.FactExtraExpenses
where FinOperationSK = 1
UNION ALL 
SELECT OfferSK, DateSK, Amount as ChargedAmount
FROM dwh.FactExtraExpenses
where FinOperationSK in (3, 4, 5, 6, 7, 10)) FCP
order by DateSK

你好,在一个表(FactExtraExpenses(的一列(Amount(中,我有不同情况的金额,如使用金额(FinOperationSK = 2(或已支付金额(FinOperationSK=1(或一些费用/利息(FinOperationSK in (3,4,5,6,7,10)(。我试着把所有的东西放在一张桌子上,每天为每个顾客(OfferSK(订购(DateSK(。所以我做了一些事情,但不太好:(你能帮我吗?

我认为您想要条件聚合:

select OfferSK, DateSK,
sum(case when FinOperationSK = 2 then Amount else 0 end) as UsedAmount,
sum(case when FinOperationSK = 1 then Amount else 0 end) as PaidAmount,
sum(case when in (3, 4, 5, 6, 7, 10) then Amount else 0 end) as ChargedAmount
from dwh.FactExtraExpenses
group by OfferSK, DateSK;

相关内容

最新更新