我有一个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不是有效的表达式类型。那么如何解决呢?
您用例何时替换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]