如何在sql server 2008中的列中汇总Vat?

时间:2010-08-02 14:34:38

标签: sql sql-server sql-server-2008

假设我有下表

CREATE TABLE #ResultTable (NettAmount money, GrossAmount money,TotalVat money) 

鉴于总量例如= 250我知道增值税为17.5% 我如何计算totalVat?

感谢您的任何建议

3 个答案:

答案 0 :(得分:4)

 INSERT #ResultTable 
     (NettAmount, GrossAmount, TotalVat)
 SELECT
     NettAmount, GrossAmount, GrossAmount * 17.5 /100
 FROM
     SourceTable 

目前还不清楚你想做什么,抱歉......

答案 1 :(得分:2)

devnet247 - 有第二个表格,其中包含有效日期跟踪的增值税税率:

vat_rate | vat_type | stt_date | end_date
-----------------------------------------
0.175    | 1        | 20100101 | null


vat_type | description
-----------------------------------------
1        | standard rate
2        | reduced rate
3        | zero rate

然后加入该表,其中发票日期对该行有效。你的最终sql将是

SELECT SUM(NettAmount * vat_rate as total_vat) from #ResultTable r1, vat_table v1 
where r1.invoice_date between v1.stt_date and v1.end_date
and r1.vat_type = v1.vat_type

无论如何,如果你跟踪的是增值税:)

吉姆

[edit] - 如果您要使用第二个表格,我建议将其扩展到第3个 - vat_type表格,因为增值税率因产品和时间而异。见http://www.hmrc.gov.uk/vat/forms-rates/rates/rates.htm#1

答案 2 :(得分:1)

SELECT SUM(GrossAmount) * 17.5 /117.5 AS VATAmount
FROM SourceTable

请注意,(英国)增值税将从2011年1月起增加至20%,遵循Jim建议的日期跟踪增值税率查询表是个好主意。