我有一个LineItem表。
InvoiceNo ApplyTax(bool) Subtotal
1 1 10
1 0 10
1 1 10
2 0 10
2 1 10
应用税意味着将另外7%添加到小计
我需要一个返回的select语句。
InvoiceNo Total
1 31.4 ----(10* 1.07 + 10 + 10*1.07)
2 20.7 ----( 10* 1.07 + 10)
我可以想出这个,但它给出了语法错误。
SELECT InvoiceNo ,SUM(( select case(ApplyTax) WHEN 1 THEN 1.07 ELSE 1)*subtotal)
From InvoiceTable
Group By InvoiceNo
我错过了一些非常简单的事情吗?我无法做到对。
答案 0 :(得分:1)
这是正确的语法:
SELECT InvoiceNo, SUM((case ApplyTax WHEN 1 THEN 1.07 ELSE 1 end)*subtotal)
From InvoiceTable
Group By InvoiceNo ;
请注意,没有嵌套的select
语句,case
以end
结尾。
答案 1 :(得分:0)
将END
放在CASE
声明的末尾..
SELECT inv ,SUM(( select case(ApplyTax) WHEN 1 THEN 1.07 ELSE 1 END)*subtotal) as total
From test
Group By inv