我希望创建一个包含以下列的 3 列 VAT_Parameter 表:
VATID, VATRate, EffectiveDate
但是,我无法理解如何确定发票日期适用的增值税税率。
例如,如果表中填充有:
1, 17.5, 1/4/1991
2, 15, 1/1/2009
3, 20, 4/1/2011
例如,我有一张日期为 2010 年 4 月 5 日的发票,SQL 查询将如何选择该日期的正确增值税率?
最佳答案
select top 1 *
from VatRate
where EffectiveDate<=@InvoiceDate
order by EffectiveDate desc
或者,使用发票表
select id, invoicedate, rate
from
(
select
inv.id, inv.invoicedate, vatrate.rate, ROW_NUMBER() over (partition by inv.id order by vatrate.effectivedate desc) rn
from inv
inner join vatrate
on inv.invoicedate>=vatrate.effectivedate
) v
where rn = 1
PS。税率变化时征收增值税的税率规则比发票日期更复杂。例如,供应日期也很重要。
关于sql-server - SQL 查询确定增值税率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13472701/