Я пытаюсь создать динамический Pivot, однако, похоже, он не работает.Pivot and filter
Таблица:
SELECT [CaseID], [ClientID]
from [RegData]
В настоящее время Возвращает:
CaseID--|ClientID| RecID
------------------------
7845107 |115172 |410
7845107 |164570 |1197
7845107 |115655 |416
7845107 |154244 |425
7856846 |116684 |151
7856846 |112354 |445
7455444 |115172 |492
7455444 |164570 |518
7455444 |115655 |1297
7455444 |154244 |681
Мне нужно, чтобы вернуться, как:
CaseID--|Val1----|Val2----|Val3----|Val4----|
7845107 |115172 |164570 |115655 |154244 |
7856846 |116684 |112354 | | |
7455444 |115172 |164570 |115655 |154244 |
Тогда мне нужно найти случаи, когда CaseID разные, но VAL1, VAL2, VAL3 и т. д. одинаковы.
CaseID--|Val1----|Val2----|Val3----|Val4----|
7845107 |115172 |164570 |115655 |154244 |
7455444 |115172 |164570 |115655 |154244 |
Как вы полагаете, что 164570 является Val2 и 115655 является Val3? SQL Server необходимо каким-то образом поддерживать данные (или что-то детерминированное, что вы можете представить для запроса) для поддержки этого заказа. В запросе у вас нет ORDER BY, поэтому я подозреваю, что вы предполагаете, что, поскольку на этот раз данные были возвращены, это тот порядок, который всегда будет возвращен? Это распространенное заблуждение, но тем не менее это заблуждение. У вас есть еще одна колонка, которая может помочь диктовать ожидаемый заказ (например, столбец идентификации или даты/времени)? –
Привет Аарон, очень справедливая точка. Чтобы свести к минимуму беспорядок, я опустил столбец «RecID», который на самом деле является уникальным идентификатором для каждой строки. – Rya
Итак, эти строки упорядочены в вашем примере выше, указанном RecID? Обычно мы предпочитаем полную информацию ... Мы умные люди, и беспорядок обычно не замедляет нас. Поэтому я предлагаю вам добавить значения RecID, по крайней мере, к первому набору. –