Было бы проще с полем автонумерации. У вас нет хорошего первичного ключа для этой таблицы.
Select *
From
(
Select max(id) as MaxID, Site, Subset
from logins
group by site, subset
) UniqueLogins
INNER JOIN logins on UniqueLogins.MaxID = Logins.ID
INNER JOIN Accounts ON logins.site = accounts.site and logins.subset = accounts.subset
Edit:
Если вы не можете изменить схему, вы всегда можете выгрузить записи во временную таблицу с автономным номером, но это может быть неэффективно, если это часто выполняется, но это будет работать.
Редактировать снова:
Если вы выбрали подход с временными таблицами, код для этого:
create table #tmp(
ID int identity(1,1) primary key
,Site <data type>
,Subset <data type>
,userid <data type>
,password <data type>
)
Insert into #tmp(Site
,Subset
,userid
,password )
Select * From logins
--where ???
Select *
From
)
Select #tmp.* From(
Select max(id) as MaxID, Site, Subset
from #tmp
group by site, subset
) UniqueSites
INNER JOIN #tmp on #tmp.ID = UniqueSites.MaxID
) UniqueLogins
INNER JOIN Accounts ON UniqueLogins.Site = Accounts.Site and UniqueLogins.Subset = Accounts.Subset
--do whatever else
drop table #tmp