Как выбрать самые высокие и самые низкие значения из другой таблицы в SQL Server CE - PullRequest
0 голосов
/ 18 апреля 2019

У меня есть таблица с именем Tests, таблица Points и ряд других связанных таблиц.

Я пытаюсь выбрать сводную информацию о тестах, которая включает данные из других таблиц. Пока все работает нормально, когда к значению в запросе Tests select добавлен только один столбец. Пока все хорошо.

Но вот где я борюсь: для каждого теста в таблице Points записывается ряд точек, которые связаны между собой типичным расположением внешнего / первичного (PK / FK) ключа с Test запись, и в каждом Test.

обычно есть несколько сотен или даже тысяч Points.

Points нумеруются последовательно от 1 до n для каждого Test, поэтому нумерация для Points для каждого нового Test начинается с 1 снова.

В итоговом выборе Tests я хотел бы видеть значение Points.Value_X при Points.Number = 1 и другой столбец со значением Points.Value_X при Points.Number = n

Идея состоит в том, чтобы извлечь только два значения из таблицы Points в сводку тестов, основываясь на порядковом номере баллов 1, а также на максимальном порядковом номере для этого теста.

Points.Value_X - десятичное число.

Может кто-нибудь помочь мне с запросом на это?

Заранее спасибо.

1 Ответ

0 голосов
/ 18 апреля 2019

Вы можете использовать агрегацию условий, что-то вроде этого:

select test_id,
       max(case when num = 1 then value_x end) as value_x_1,
       max(case when num = <n> then value_x end) as value_x_n
from points p
group by test_id;

Предполагается, что значение <n> является константой при выполнении запроса.

...