【发布时间】:2014-05-09 02:09:45
【问题描述】:
我有一个 LineItem 表。
InvoiceNo ApplyTax(bool) Subtotal
1 1 10
1 0 10
1 1 10
2 0 10
2 1 10
应用税意味着在小计中再增加 7%
我需要一个返回的选择语句。
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
我错过了一些非常简单的东西吗?我做错了。
【问题讨论】:
-
无论如何,你为什么不只是 * 1.07,因为 0 * 1.07 = 0。所以最终你仍然得到 0。为什么要为“案例”浪费额外的处理。
-
案例 1 = 真,案例 0 = 假。如果为真,你就申请税,如果它是假的,你不申请。它要么是 * 1.07 要么是 * 1,而不是相反。 @天空