• I think this will do it; performance will depend on the indexes available on the table:

    select sales.*

    from (

    select distinct TerritoryID

    from [Sales].[SalesOrderHeader]

    ) AS terrs

    inner join

    (select top 3

    TerritoryID,

    salesPersonID,

    sum(TotalDue) as salesTotal

    from [Sales].[SalesOrderHeader]

    where

    TerritoryID = terrs.TerritoryID and

    SalesPersonID is not null

    group by TerritoryID, SalesPersonID

    order by sum(TotalDue) DESC

    ) AS sales on

    sales.TerrorityID = terrs.TerritoryID

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.