Попробуйте
Пример ввода: (случай 1)
declare @t table(Typeid int,ObjectId int)
insert into @t
select 1,10 union all select 2,10 union all
select 1,11
select * from @t
Пример ввода: (Случай 2)
declare @t table(Typeid int,ObjectId int)
insert into @t
select 1,10 union all select 2,10 union all
select 3,10 union all select 4,10 union all
select 5,10 union all select 6,10 union all
select 1,11 union all select 2,11 union all
select 3,11 union all select 4,11 union all
select 5,11 union all select 1,12 union all
select 2,12 union all select 3,12 union all
select 4,12 union all select 5,12 union all
select 6,12
select * from @t
Пример ввода: (случай 3) [Дублированные записи есть]
declare @t table(Typeid int,ObjectId int)
insert into @t
select 1,10 union all select 2,10 union all
select 1,10 union all select 2,10 union all
select 3,10 union all select 4,10 union all
select 5,10 union all select 6,10 union all
select 1,11 union all select 2,11 union all
select 3,11 union all select 4,11 union all
select 5,11 union all select 1,12 union all
select 2,12 union all select 3,12 union all
select 4,12 union all select 5,12 union all
select 6,12 union all select 3,12
В случае 1, выходной сигнал должен быть 10
В случае 2 & 3, выходной сигнал должен быть 10 и 12
Запрос:
select X.ObjectId from
(
select
T.ObjectId
,count(ObjectId) cnt
from(select distinct ObjectId,Typeid from @t)T
where T.Typeid in(select Typeid from @t)
group by T.ObjectId)X
join (select max(Typeid) maxcnt from @t)Y
on X.cnt = Y.maxcnt
должен заметить, что в запросе не будет всего 2 идентификатора типа. Это часть большего запроса, и количество пройденных идентификаторов типа будет равно 2 или более. Я бы подумал, что было бы проще решить эту проблему, поскольку таблицы сопоставления распространены в базах данных. – Josh
Укажите полную проблему с ожидаемыми входами и поведением. Если в запросе три, и он должен соответствовать всем трем или что? –
Как вы передаете идентификаторы запроса? Единая запятая или таблица? –