Skulle vilja kolla om ID innehåller minst två olika AltID och i så fall köra en select, i annat fall returnera -1. I fallet ovan så skulle id 2 vara OK men inte id 1 eller 3.
Alltså så här nånting illustrerat med lite kvasikod:
SELECT DISTINCT TOP 2 AltID FROM Tabell WHERE ID = 1
om svaret ovan returnerar 2 rader:
SELECT ...
else
return -1
Att returnera -1 känns lite onödigt och tillför bara komplexitet. Ett tomt resultatset borde vara en minst lika bra indikation på att det inte är ett godkänt ID (personligen hade jag jag hämtat resultatet och kollat mängden i efterhand. För mycket logik i datalagret är inte sunt)
SELECT AltID FROM Tabell t WHERE ID = 1 AND (SELECT COUNT(DISTINCT t2.altID) FROM Tabell t2 WHERE t2.ID=t.ID)>1
eller
SELECT AltID FROM Tabell t WHERE ID = 1 AND ID IN (SELECT ID FROM Tabell t2 GROUP BY ID HAVING COUNT(DISTINCT altID)>1)