I want to build a list of Lastnames to filter out from the results of the second select statement something like this (which doesn't do it)
DECLARE @ExcludedList VARCHAR(MAX)
SET @ExcludedList = (SELECT TOP 20 Lastname
FROM dbo.Subscribers
where [Firstname] = 'Dave')
SELECT [Firstname], Count([Firstname]) as [Count] from Subscribers
WHERE [Lastname] not in (@ExcludedList)
If you need to use a variable, then it has to be a table variable:
DECLARE @ExcludedList TABLE (Lastname VARCHAR(MAX))
INSERT INTO @ExcludedList
SELECT TOP 20 Lastname
FROM dbo.Subscribers
WHERE [Firstname] = 'Dave'
SELECT [Firstname], Count([Firstname]) AS [Count]
FROM Subscribers
WHERE [Lastname] NOT IN (SELECT Lastname FROM @ExcludedList)