Как написать оператор SQL, чтобы свести несколько записей к одной записи? - PullRequest
1 голос
/ 22 мая 2019

У меня есть таблица с несколькими сгруппированными по полям, как показано в первой таблице.Я изо всех сил пытаюсь даже начать оператор запроса, чтобы сделать его похожим на вторую таблицу.Ваша помощь очень ценится!

GRP      SET       Start     Completed
A         1       3/1/2019
A         2       3/2/2019   3/5/2019
B         1       4/1/2019   4/2/2019
B         2       2/13/2019  2/27/2019

Желаемый:

GRP      SET1_Start    SET1_Comp   SET2_Start   SET2_Comp
A         3/1/2019                  3/2/2019     3/5/2019
B         4/1/2019     4/2/2019     2/13/2019    2/27/2019

Заранее благодарю за помощь !!!

1 Ответ

3 голосов
/ 22 мая 2019

Использовать условную агрегацию, которая использует iif() в MS Access:

select grp,
       max(iif(set = 1, start, null)) as set1_start,
       max(iif(set = 1, completed, null)) as set1_completed,
       max(iif(set = 2, start, null)) as set2_start,
       max(iif(set = 2, completed, null)) as set2_completed
from t
group by grp;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...