Я использую SQL Server 2008 R2. У меня есть записи, как показано ниже в таблице:Исключить конкретный тип записи
Id Sys Dia Type UniqueId
1 156 20 first 12345
2 157 20 first 12345
3 150 15 last 12345
4 160 17 Average 12345
5 150 15 additional 12345
6 157 35 last 891011
7 156 25 Average 891011
8 163 35 last 789521
9 145 25 Average 789521
10 156 20 first 963215
11 150 15 last 963215
12 160 17 Average 963215
13 156 20 first 456878
14 157 20 first 456878
15 150 15 last 456878
16 160 17 Average 456878
17 150 15 last 246977
18 160 17 Average 246977
19 150 15 additional 246977
Что касается этой информации, эти записи являются своего рода групп, которые имеют общие UniqueID. Записи могут иметь тип «первый, последний, средний и дополнительный». Теперь из этих записей я хочу выбрать «средний» тип записей, только если у них есть «первый» или «дополнительный» вид чтения в группе. Иначе я хочу, чтобы исключить их из выбора ..
Ожидаемый результат:
Id Sys Dia Type UniqueId
1 156 20 first 12345
2 157 20 first 12345
3 150 15 last 12345
4 160 17 Average 12345
5 150 15 additional 12345
6 157 35 last 891011
7 163 35 last 789521
8 156 20 first 963215
9 150 15 last 963215
10 160 17 Average 963215
11 156 20 first 456878
12 157 20 first 456878
13 150 15 last 456878
14 160 17 Average 456878
15 150 15 last 246977
16 160 17 Average 246977
17 150 15 additional 246977
Короче говоря, я не хочу, чтобы выбрать запись, которые имеют тип = «Средняя» и только «последний «тип записи с таким же UniqueId. Любое решение?
Идея в порядке, вы должны просто заменить '' UNION' с UNION ALL'. Поскольку оба подмножества являются взаимоисключающими, нет риска дублирования данных, поэтому результаты будут одинаковыми, но «UNION ALL» работает намного быстрее. –
@NenadZivkovic - Спасибо, ты абсолютно прав. Я отредактировал свой ответ. – Dan