Как исключить повторяющиеся занчение у оператора PIVOT? Всем привет! есть таблица (как бы эл.журнал), хотел вывести данные через перекрестный запрос но поля повторяетсяSELECT ID_KEY2,[2017-10-27],[2017-10-28]
FROM
(SELECT ID, ID_KEY2, OCENKA, DAT
FROM Journal2) p
PIVOT
(AVG(OCENKA) FOR DAT IN ( [2017-10-27],[2017-10-28] ) ) AS pvt ORDER BY pvt.ID_KEY2;
ID_KEY2 - это идентификатор учащегося
OCENKA - Оценка которую он получил
DAT - формат даты, число получения оценки
Вот я просто сделал запрос для себя, а тут ID_KEY2 повторяется.
Например учащийся с ID_KEY2 = 1 получил оценку 5 в 27-10-2017 и 4 ку в 28-10-2017
В результате выполнения выше приведенного запроса учащийся с ID_KEY2 = 1 выходит на первой строке по дате 27-10-2017 и на второй по дате 28-10-2017
Не могу сделать что бы был в строке один раз в соответствующих столбцах
Что я делаю не правильно?
Всем заранее спасибо!))

21 Авг 2019 в 06:23
192 +1
0
Ответы
1

Для исключения повторяющихся значений ID_KEY2 в результирующем наборе данных, вы можете использовать функцию агрегации в комбинации с оператором PIVOT. Например, вы можете использовать функцию MAX или MIN для агрегации значений в случае, если учащийся получил несколько оценок в один день. Вот пример, как можно изменить ваш запрос:

SELECT ID_KEY2, MAX([2017-10-27]) as [2017-10-27], MAX([2017-10-28]) as [2017-10-28]
FROM
(SELECT ID, ID_KEY2, OCENKA, DAT
FROM Journal2) p
PIVOT
(AVG(OCENKA) FOR DAT IN ( [2017-10-27],[2017-10-28] ) ) AS pvt
GROUP BY ID_KEY2
ORDER BY ID_KEY2;

В данном случае, используется функция MAX для агрегации значений OCENKA в столбцах [2017-10-27] и [2017-10-28] для каждого учащегося. Таким образом, каждый учащийся будет представлен только один раз в результирующем наборе данных.

Надеюсь, это поможет вам решить проблему с повторяющимися значениями в вашем запросе!

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 588 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир