使用SQL查找税率,不使用最小和最大字段

时间:2015-11-04 22:23:46

标签: sql

我试图在SQL中选择一个纳税括号。

我可以简单地制作一个minbracket和maxbracket feild,但这将是重复的数据。

目前,我有:

RedisDictionary

哪个适用于300,000,但是当我达到NY的最高税率时,因为我正在寻找s2.statetaxid"在"下,但不是说1,000,000。

SELECT s1.statetaxid, s1.statecode, s1.type, s1.taxrate, s1.bracket, s1.exemptperfiler, s1.exemperdependent, s1.deductfederaltaxonstate
FROM
    statetax s1
    INNER JOIN  statetax s2
        ON s1.statetaxid = s2.statetaxid - 1
WHERE                     
    s1.statecode  = 'NY' AND
    s1.type = 'Single' AND
    s1.bracket <= 300000 AND
    s2.bracket > 300000

如何包括工资高于最高门槛的情况?

1 个答案:

答案 0 :(得分:0)

假设您从0开始,您希望找到MAX括号小于您的薪水的行:

SELECT s1.statetaxid, s1.statecode, s1.type, s1.taxrate, s1.bracket, s1.exemptperfiler, s1.exemperdependent, s1.deductfederaltaxonstate
FROM
    statetax s1
WHERE                     
    s1.statecode  = 'NY' AND
    s1.type = 'Single'   AND
    s1.bracket = (
      select max(s2.bracket)
      FROM
        statetax s2
      WHERE                     
        s1.statecode  = s2.statcode AND
        s1.type = s2.type           AND
        s2.bracket < 300000 -- salary?
      )