如何通过在其中返回小节来编写案例说明?

问题描述 投票:-1回答:1

我有一个SQL查询卡的总支出。有一个称为金额的字段,它通过不同的数据源发送。该金额包含卡支出,利息,卡支付,银行账单费用等。还有另一个字段,称为“描述”,它通过另一个数据源来传递。它包含以下内容

负额销售交易-与卡支出有关负销售冲销-与卡支出有关,但需要从支出中扣除参加费-与卡利息有关杂项销售草稿-与卡支出有关冲销销售冲销-与卡支出有关,但需要从支出中扣除。

[当获得信用卡支出时,我们将此公式写为

if [description] = 'Onus sales transactions' then AMOUNT
elseif [description] = 'Onus sales reversals' then AMOUNT *-1
elseif [description] = 'Offus sales draft' then AMOUNT
elseif [description] = 'Offus sales reversals' then AMOUNT *-1
else 0
end

上面的表格计算是从表格的金额字段中提取所有卡支出明细。我需要使用案例通过SQL编写。

主SQL查询如下。 (查询中还有很多,但是我在这里提取了一小部分)

select a.amount, b.description
from card_payments a
card_des b
where card no a = card number b

我需要在上面进行表格计算。

我在那儿写了一个cal,表示为

case when [description] = 'Onus sales transactions' then AMOUNT
     when [description] = 'Onus sales reversals' then AMOUNT *-1
     when [description] = 'Offus sales draft' then AMOUNT
     when [description] = 'Offus sales reversals' then AMOUNT *-1
     else 0
end as Amount

但这返回一个错误,提示我AMOUNT不是有效的表达式类型。那么如何解决呢?

sql tableau
1个回答
-1
投票

您用例何时替换if语句。我想在card_payments中存在[card no],在card_des中存在[card number]

select b.description,

case when [description] = 'Onus sales transactions' then AMOUNT
     when [description] = 'Onus sales reversals' then AMOUNT *-1
     when [description] = 'Offus sales draft' then AMOUNT
     when [description] = 'Offus sales reversals' then AMOUNT *-1
     else 0
end as Amount

from card_payments a inner join
card_des b
on a.[card no]  = b.[card number]
© www.soinside.com 2019 - 2024. All rights reserved.