Essayer cette
Exemple d'entrée: (cas 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
Exemple d'entrée: (Cas 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
Exemple d'entrée: (Cas 3) [Les entrées en double sont là]
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
pour le cas 1, la sortie doit être 10
Pour le cas 2 & 3, la sortie doit être de 10 et 12
Query:
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
I devrait noter que il ne va pas y avoir seulement 2 identifiants de type dans la requête. Cela fait partie d'une requête plus grande et le nombre d'ID de type transmis sera de 2 ou plus. J'aurais pensé qu'il y aurait eu une solution plus simple à ce problème car les tables de mappage sont courantes dans les bases de données. – Josh
Indiquer le problème complet avec les entrées et le comportement attendus. Si trois sont dans la requête et qu'il doit correspondre à trois ou quoi? –
Comment passez-vous les ID à la requête? Une seule variable séparée par une virgule ou une table? –