Получите отдельные строки, исключив NULL в нескольких столбцах и строках - PullRequest
1 голос
/ 15 мая 2019

Я работаю над запросом, и я застрял в одной его части.Таблица на данный момент выглядит примерно так:

id|classid|start|end|CurrentScore|lastYearScore|CurrentTotal|lastYearTotal  
1 |32     |1.23 |2.5|NULL        |NULL         |9.0         |NULL  
1 |32     |1.23 |2.5|7           |NULL         |NULL        |NULL  
1 |32     |1.23 |2.5|NULL        |15           |NULL        |NULL  
1 |32     |1.23 |2.5|NULL        |NULL         |NULL        |20  
...

Результат, который я ищу, выглядит так:

id|classid|start|end|CurrentScore|lastYearScore|CurrentTotal|lastYearTotal  
1 |32     |1.23 |2.5|7           |15           |9.0         |20  

Есть ли способ сделать это?

1 Ответ

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

Использование GROUP BY с MAX() поможет получить ожидаемый результат.

Запрос будет:

SELECT id, classid, [start], [end],
       MAX(CurrentScore) AS CurrentScore, 
       MAX(lastYearScore) AS lastYearScore,
       MAX(CurrentTotal) AS CurrentTotal,
       MAX(lastYearTotal) AS lastYearTotal  
FROM TableName
GROUP BY id, classid, [start], [end]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...