Something like this?declare @test table (Terminal varchar(20), supplier varchar(20), product varchar(20), day varchar(20), Price smallmoney)insert @testselect 'Terminal 1', 'supplier 1', 'product 1', 'day 1', 2.30 union allselect 'Terminal 1', 'supplier 2', 'product 1', 'day 1', 2.35 union allselect 'Terminal 1', 'supplier 3', 'product 1', 'day 1', 3.00 union allselect 'Terminal 1', 'supplier 4', 'product 1', 'day 1', 2.78 union allselect 'Terminal 1', 'supplier 5', 'product 1', 'day 1', 2.64 union allselect 'Terminal 2', 'supplier 1', 'product 1', 'day 1', 2.30 union allselect 'Terminal 2', 'supplier 2', 'product 1', 'day 1', 2.35 union allselect 'Terminal 2', 'supplier 3', 'product 1', 'day 1', 2.58 union allselect 'Terminal 2', 'supplier 4', 'product 1', 'day 1', 2.58 union allselect 'Terminal 2', 'supplier 5', 'product 1', 'day 1', 2.65 union allselect 'Terminal 3', 'supplier 1', 'product 1', 'day 1', 2.30 union allselect 'Terminal 3', 'supplier 2', 'product 1', 'day 1', 2.35 union allselect 'Terminal 3', 'supplier 3', 'product 1', 'day 1', 3.00 union allselect 'Terminal 3', 'supplier 4', 'product 1', 'day 1', 2.78 union allselect 'Terminal 3', 'supplier 6', 'product 1', 'day 1', 2.59 union allselect 'Terminal 4', 'supplier 1', 'product 1', 'day 1', 2.30 union allselect 'Terminal 4', 'supplier 2', 'product 1', 'day 1', 2.29 union allselect 'Terminal 4', 'supplier 3', 'product 1', 'day 1', 3.01 union allselect 'Terminal 4', 'supplier 5', 'product 1', 'day 1', 2.64 union allselect 'Terminal 4', 'supplier 7', 'product 1', 'day 1', 2.45 union allselect 'Terminal 5', 'supplier 1', 'product 1', 'day 1', 2.30 union allselect 'Terminal 6', 'supplier 2', 'product 1', 'day 1', 2.35 union allselect 'Terminal 6', 'supplier 3', 'product 1', 'day 1', 3.00 union allselect 'Terminal 6', 'supplier 6', 'product 1', 'day 1', 2.61 union allselect 'Terminal 6', 'supplier 7', 'product 1', 'day 1', 2.54 union allselect 'Terminal 1', 'supplier 1', 'product 1', 'day 2', 2.31 union allselect 'Terminal 1', 'supplier 2', 'product 1', 'day 2', 2.36 union allselect 'Terminal 1', 'supplier 3', 'product 1', 'day 2', 3.00 union allselect 'Terminal 1', 'supplier 4', 'product 1', 'day 2', 2.78 union allselect 'Terminal 1', 'supplier 5', 'product 1', 'day 2', 2.65 union allselect 'Terminal 2', 'supplier 1', 'product 1', 'day 2', 2.31 union allselect 'Terminal 2', 'supplier 2', 'product 1', 'day 2', 2.37 union allselect 'Terminal 2', 'supplier 3', 'product 1', 'day 2', 2.58 union allselect 'Terminal 2', 'supplier 4', 'product 1', 'day 2', 2.78 union allselect 'Terminal 2', 'supplier 5', 'product 1', 'day 2', 2.64 union allselect 'Terminal 3', 'supplier 1', 'product 1', 'day 2', 2.31 union allselect 'Terminal 3', 'supplier 2', 'product 1', 'day 2', 2.36 union allselect 'Terminal 3', 'supplier 3', 'product 1', 'day 2', 3.00 union allselect 'Terminal 3', 'supplier 4', 'product 1', 'day 2', 2.78 union allselect 'Terminal 3', 'supplier 6', 'product 1', 'day 2', 2.60 union allselect 'Terminal 4', 'supplier 1', 'product 1', 'day 2', 2.31 union allselect 'Terminal 4', 'supplier 2', 'product 1', 'day 2', 2.36 union allselect 'Terminal 4', 'supplier 3', 'product 1', 'day 2', 3.01 union allselect 'Terminal 4', 'supplier 5', 'product 1', 'day 2', 2.64 union allselect 'Terminal 4', 'supplier 7', 'product 1', 'day 2', 2.48 union allselect 'Terminal 5', 'supplier 1', 'product 1', 'day 2', 2.31 union allselect 'Terminal 6', 'supplier 2', 'product 1', 'day 2', 2.36 union allselect 'Terminal 6', 'supplier 3', 'product 1', 'day 2', 3.00 union allselect 'Terminal 6', 'supplier 6', 'product 1', 'day 2', 2.61 union allselect 'Terminal 6', 'supplier 7', 'product 1', 'day 2', 2.73SELECT a.Terminal, a.PriceFROM @Test aINNER JOIN @Test b ON b.Price <= a.Price AND b.Terminal = a.TerminalGROUP BY a.Terminal, a.PriceHAVING COUNT(DISTINCT b.Price) <= 3ORDER BY a.Terminal, a.PriceSELECT a.Terminal, a.PriceFROM @Test aWHERE (SELECT COUNT(DISTINCT b.Price) FROM @Test b WHERE b.Price <= a.Price AND b.Terminal = a.Terminal) <= 3ORDER BY a.Terminal, a.Price
Peter LarssonHelsingborg, Sweden