Объединение строк на основе значения поля в строке - PullRequest
2 голосов
/ 01 марта 2010

У меня есть таблица с налоговыми ставками, где строки с типом объекта 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 в качестве параметра. Таким образом, что для каждого года он возвращает налоговую ставку для этого типа объекта, если он существует, в противном случае возвращает строку NULL для этого года и типа ставки.

Т.е.: запрос вышеупомянутого с индивидуальным типом объекта должен вернуть

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

Кто-нибудь может подсказать, как мне этого добиться?

Заранее спасибо,

Yong

1 Ответ

2 голосов
/ 01 марта 2010
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...