【问题标题】:Coalescing rows based on field value in row根据行中的字段值合并行
【发布时间】:2010-03-01 01:32:44
【问题描述】:

我有一个税率表,其中 NULL 实体类型行表示默认税率。

Year End | EntityType | RateType | TaxRate
------------------------------------------
2009 |       NULL | Interest |      13
2009 |       NULL |    Other |       8
2009 |       NULL | Interest |      13
2010 |       NULL |    Other |       9 
2009 |    Company | Interest |      15
2010 | Individual |    Other |       6  

我想为这个表创建一个以Entitytype为参数的存储过程。这样对于每一年,如果该实体类型存在,则返回该实体类型的税率,否则返回该年份和 ratetype 的 NULL 行。

即:使用 entitytype 个人查询上述内容应该返回

Year End | EntityType | RateType | TaxRate
------------------------------------------
2009     |       NULL | Interest |      13
2009     |       NULL |    Other |       8
2009     |       NULL | Interest |      13
2010     | Individual |    Other |       6

任何人都可以建议我可以实现这一目标的方法吗?

提前致谢,

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案1】:
    SELECT 
        t1.year_end,
        t1.entity_type,
        t1.ratetype,
        COALESCE(t2.taxrate, t1.taxrate)
      FROM
        Rates AS t1
    LEFT JOIN
        Rates AS t2 ON
            t1.year_end = t2.year_end
            AND t2.entitytype IS NULL
    WHERE t1.year_end = @year
        AND t1.entitytype = @entitytype
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-11
      • 2019-12-04
      • 1970-01-01
      • 2019-02-14
      • 1970-01-01
      • 2018-09-05
      • 2023-03-13
      • 1970-01-01
      相关资源
      最近更新 更多