Как выбрать столбец с определенным значением столбца в SQL 2008? - PullRequest
0 голосов
/ 23 мая 2018

У меня есть таблица T1, содержащая два столбца ID и решение.Идентификатор может повторяться для различных решений.Пожалуйста, обратитесь к приведенному ниже примеру:

 Table T1:
    |---------------------|------------------|
    |      id             |     decision     |
    |---------------------|------------------|
    |      abc_0011       |      Forward     |
    |---------------------|------------------|
    |      abc_0011       |      Forward     |
    |---------------------|------------------|
    |      abc_0011       |      Reject      |
    |---------------------|------------------|
    |      abc_0012       |      Forward     |
    |---------------------|------------------|
    |      abc_0012       |      Forward     |
    |---------------------|------------------|

 Required Table:
    |---------------------|------------------|
    |      id             |     decision     |
    |---------------------|------------------|
    |      abc_0011       |      Reject      |
    |---------------------|------------------|
    |      abc_0012       |      Pending     |
    |---------------------|------------------|

Здесь есть два различных идентификатора abc_011 и abc_012 , abc_011 появляется три раза, с другим решением, где последнее решениеОтклонить, в то время как abc_012 появляется два раза, когда оба решения направлены вперед, и нет такого решения, как Отклонить.Идея состоит в том, чтобы создать таблицу, в которой идентификатор, который на любом этапе отклоняется, должен отображать отклонение, а идентификатор, который не отклоняется, в любом случае должен отображать ожидающий.Примечание: идентификатор не должен повторяться в финальной таблице.

1 Ответ

0 голосов
/ 23 мая 2018

Код ниже должен дать вам ожидаемые результаты.

;WITH CTE AS (
SELECT  ID,MAX(DECISION) DECISION
FROM T1
GROUP BY ID
)
SELECT  ID,CASE WHEN DECISION!='Reject' THEN 'Pending' ELSE DECISION END DECISION
FROM CTE
...