2010-08-02 55 views
0

假设我有如下表如何在sql server 2008的列中添加Vat?

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

给出一个总额例如= 250我知道,增值税为17.5% 我怎么计算totalVat?

感谢您的任何建议

+0

在'SELECT'子句(GrossAmount * 1.175或其他东西)中包含计算出的净数量,然后在其上加上SUM。 – bzlm 2010-08-02 14:39:50

回答

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

目前还不清楚你想要做什么,对不起......

+0

你可能也必须四舍五入。这取决于增值税的规定,但通常你应该向上或向下四舍五入。 – Gabe 2010-08-02 14:41:01

+0

抱歉不清楚。另一个例子给定一个GrossAmount列,其总表上的总和(总和)为17.5,计算总表上的总和。这有帮助吗? – user9969 2010-08-02 14:50:33

+0

select @ VatAmount = SUM(GrossAmount *(VatRate/100))\t from #ResultTable 这是正确的吗? – user9969 2010-08-02 14:53:54

2

devnet247 - 有一个包含沿行的有效日期跟踪增值税率第2个表:

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 

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

吉姆

[编辑] - 如果你使用第二表,我建议扩展到第3 - vat_type表,因为增值税率随产品和时间而变化。见记http://www.hmrc.gov.uk/vat/forms-rates/rates/rates.htm#1

+0

好吧,这似乎进展顺利:-) – 2010-08-02 15:19:00

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

轴承,该轴承(UK)增值税是由于从2011年1月提高到20%,这将是遵循最新跟踪的增值税税率查找表的吉姆的建议是一个好主意。

+0

mark -thank你。我认为是你把我打回来了。我对此感到泪流满面 - 对这个问题投了赞成票:-),但它肯定是最好的方法 - 我从最近的商业经验中得知,而且正如上面Brian所指出的那样,增值税也有不同的税率,因此应该/应该提供额外的参考为了那个原因 !!欢呼声... – 2010-08-02 15:29:16

+0

感谢您的建议。我已经查了一下表,我没有忘记计算增值税的公式。 非常感谢 – user9969 2010-08-02 18:27:16