Группировка данных набора результатов в SQL Server - PullRequest
0 голосов
/ 09 января 2012

У меня есть хранимая процедура, в которой я хотел бы вернуть набор результатов, выглядящий примерно так:

id | student | term1 | term2

Проблема в том, что данные не сохраняются в БД.Таким образом, запрос сгенерирует результирующий набор, который будет выглядеть примерно так:

id | student | termNo | termValue
1  | lorem   | 1      | someValue
2  | ipsum   | 2      | anotherValue

Есть ли простой способ конвертировать это.Результирующие наборы велики, поэтому я не хочу делать несколько запросов, которые были бы очевидным решением.

Надеюсь, это понятно =)

1 Ответ

3 голосов
/ 09 января 2012

Хорошо, основываясь на вашем комментарии, вы можете сделать это:

SELECT  id, 
        student, 
        MIN(CASE WHEN termNo = 1 THEN termValue END) term1,
        MIN(CASE WHEN termNo = 2 THEN termValue END) term2,
        MIN(CASE WHEN termNo = 3 THEN termValue END) term3,
        MIN(CASE WHEN termNo = 4 THEN termValue END) term4
FROM YourTable
GROUP BY id, student

или

SELECT id, student, [1] AS Term1, [2] AS Term2, [3] AS Term3, [4] AS Term4
FROM YourTable T
PIVOT(MIN(termValue) FOR termNo IN ([1],[2],[3],[4])) AS PT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...