Either of these should work. Relative performance will depend on data.2 correlated subqueries:SELECT NameFROM tblOwnerWHERE ownerID NOT IN ( SELECT ownerID FROM tblCar c INNER JOIN tblRaceResult r ON c.carID = r.CarID WHERE RacePosition = 1 AND RaceID > 1) AND ownerID IN ( SELECT ownerID FROM tblCar c INNER JOIN tblRaceResult r ON c.carID = r.CarID WHERE RaceID = 9)
Join it all together and keep the ones you want:SELECT MAX(o.Name) AS NameFROM tblOwner oINNER JOIN tblCar c ON o.OwnerID = c.OwnerIDINNER JOIN tblRaceResult r ON c.CarID = r.CarIDGROUP BY o.ownerIDHAVING COUNT(CASE WHEN RaceID = 9 THEN 1 END) > 0 AND COUNT(CASE WHEN RaceID > 1 AND RacePosition = 1 THEN 1 END) = 0
This assumes tables that look like this:CREATE TABLE tblOwner ( ownerID int PRIMARY KEY, Name varchar(50) NOT NULL)CREATE TABLE tblCar ( carID int PRIMARY KEY, carNumber int NOT NULL, driverName varchar(50) NOT NULL, ownerID int NOT NULL REFERENCES tblOwner(ownerID))CREATE TABLE tblRace ( RaceID int PRIMARY KEY, RaceLocation varchar(50) NOT NULL, Racedate datetime NOT NULL)CREATE TABLE tblRaceResult ( RaceID int NOT NULL REFERENCES tblRace(RaceID), CarID int NOT NULL REFERENCES tblCar(carID), RacePosition int NOT NULL, PRIMARY KEY (RaceID, CarID))
There's an extra DriverName column in tblCar. I used test data from 2001 F1 season. This has errors in it: both conceptually -- I've left out any unplaced (DNF) results -- and logically -- (RaceID, RacePosition) is not unique.INSERT INTO tblRace VALUES (1, 'Australia', '20010304')INSERT INTO tblRace VALUES (2, 'Malaysia', '20010318')INSERT INTO tblRace VALUES (3, 'Brazil', '20010401')INSERT INTO tblRace VALUES (4, 'San Marino', '20010415')INSERT INTO tblRace VALUES (5, 'Spain', '20010429')INSERT INTO tblRace VALUES (6, 'Austria', '20010513')INSERT INTO tblRace VALUES (7, 'Monaco', '20010527')INSERT INTO tblRace VALUES (8, 'Canada', '20010610')INSERT INTO tblRace VALUES (9, 'Germany', '20010624')INSERT INTO tblRace VALUES (10, 'France', '20010701')INSERT INTO tblRace VALUES (11, 'Great Britain', '20010715')INSERT INTO tblRace VALUES (12, 'Germany', '20010729')INSERT INTO tblRace VALUES (13, 'Hungary', '20010819')INSERT INTO tblRace VALUES (14, 'Belgium', '20010902')INSERT INTO tblRace VALUES (15, 'Italy', '20010916')INSERT INTO tblRace VALUES (16, 'USA', '20010930')INSERT INTO tblRace VALUES (17, 'Japan', '20011014')INSERT INTO tblOwner VALUES (1, 'Ferrari')INSERT INTO tblOwner VALUES (2, 'McLaren')INSERT INTO tblOwner VALUES (3, 'Williams')INSERT INTO tblOwner VALUES (4, 'Sauber')INSERT INTO tblOwner VALUES (5, 'Jordan')INSERT INTO tblOwner VALUES (6, 'BAR')INSERT INTO tblOwner VALUES (7, 'Benetton')INSERT INTO tblOwner VALUES (8, 'Jaguar')INSERT INTO tblOwner VALUES (9, 'Prost')INSERT INTO tblOwner VALUES (10, 'Arrows')INSERT INTO tblOwner VALUES (11, 'Minardi')INSERT INTO tblCar VALUES (1, 1, 'Michael Schumacher', 1)INSERT INTO tblCar VALUES (2, 2, 'Rubens Barrichello', 1)INSERT INTO tblCar VALUES (3, 3, 'Mika Hakkinen', 2)INSERT INTO tblCar VALUES (4, 4, 'David Coulthard', 2)INSERT INTO tblCar VALUES (5, 5, 'Ralf Schumacher', 3)INSERT INTO tblCar VALUES (6, 6, 'Juan Pablo Montoya', 3)INSERT INTO tblCar VALUES (7, 7, 'Giancarlo Fisichella', 7)INSERT INTO tblCar VALUES (8, 8, 'Jenson Button', 7)INSERT INTO tblCar VALUES (9, 9, 'Jacques Villeneuve', 6)INSERT INTO tblCar VALUES (10, 10, 'Olivier Panis', 6)INSERT INTO tblCar VALUES (11, 11, 'Jarno Trulli', 5)INSERT INTO tblCar VALUES (12, 12, 'Jean Alesi', 5)INSERT INTO tblCar VALUES (13, 13, 'Jos Verstappen', 10)INSERT INTO tblCar VALUES (14, 14, 'Enrique Antonio Bernoldi', 10)INSERT INTO tblCar VALUES (15, 15, 'Nick Heidfeld', 4)INSERT INTO tblCar VALUES (16, 16, 'Kimi Raikkonen', 4)INSERT INTO tblCar VALUES (17, 17, 'Eddie Irvine', 8)INSERT INTO tblCar VALUES (18, 18, 'Luciano Burti', 8)INSERT INTO tblCar VALUES (19, 19, 'Fernando Alonso', 11)INSERT INTO tblCar VALUES (20, 20, 'Tarso Marques', 11)INSERT INTO tblCar VALUES (21, 21, 'Heinz Harald Frentzen', 9)INSERT INTO tblCar VALUES (22, 22, 'Tomas Enge', 9)INSERT INTO tblRaceResult SELECT 1, 1, 1 UNION SELECT 2, 1, 1 UNION SELECT 3, 1, 2 UNION SELECT 5, 1, 1 UNION SELECT 6, 1, 2 UNION SELECT 7, 1, 1 UNION SELECT 8, 1, 2 UNION SELECT 9, 1, 1 UNION SELECT 10, 1, 1 UNION SELECT 11, 1, 2 UNION SELECT 13, 1, 1 UNION SELECT 14, 1, 1 UNION SELECT 15, 1, 4 UNION SELECT 16, 1, 2 UNION SELECT 1, 2, 3 UNION SELECT 2, 2, 2 UNION SELECT 4, 2, 3 UNION SELECT 6, 2, 3 UNION SELECT 7, 2, 2 UNION SELECT 9, 2, 5 UNION SELECT 10, 2, 3 UNION SELECT 11, 2, 3 UNION SELECT 12, 2, 2 UNION SELECT 13, 2, 2 UNION SELECT 14, 2, 5 UNION SELECT 15, 2, 2 UNION SELECT 16, 2, 15 UNION SELECT 2, 3, 6 UNION SELECT 4, 3, 4 UNION SELECT 5, 3, 9 UNION SELECT 8, 3, 3 UNION SELECT 9, 3, 6 UNION SELECT 11, 3, 1 UNION SELECT 13, 3, 5 UNION SELECT 14, 3, 4 UNION SELECT 16, 3, 1 UNION SELECT 1, 4, 2 UNION SELECT 2, 4, 3 UNION SELECT 3, 4, 1 UNION SELECT 4, 4, 2 UNION SELECT 5, 4, 5 UNION SELECT 6, 4, 1 UNION SELECT 7, 4, 5 UNION SELECT 9, 4, 3 UNION SELECT 10, 4, 4 UNION SELECT 13, 4, 3 UNION SELECT 14, 4, 2 UNION SELECT 16, 4, 3 UNION SELECT 2, 5, 5 UNION SELECT 4, 5, 1 UNION SELECT 8, 5, 1 UNION SELECT 9, 5, 4 UNION SELECT 10, 5, 2 UNION SELECT 12, 5, 1 UNION SELECT 13, 5, 4 UNION SELECT 14, 5, 7 UNION SELECT 15, 5, 3 UNION SELECT 5, 6, 2 UNION SELECT 9, 6, 2 UNION SELECT 11, 6, 4 UNION SELECT 13, 6, 8 UNION SELECT 15, 6, 1 UNION SELECT 1, 7, 13 UNION SELECT 3, 7, 6 UNION SELECT 5, 7, 14 UNION SELECT 9, 7, 11 UNION SELECT 10, 7, 11 UNION SELECT 11, 7, 13 UNION SELECT 12, 7, 4 UNION SELECT 14, 7, 3 UNION SELECT 15, 7, 10 UNION SELECT 16, 7, 8 UNION SELECT 1, 8, 14 UNION SELECT 2, 8, 11 UNION SELECT 3, 8, 10 UNION SELECT 4, 8, 12 UNION SELECT 5, 8, 15 UNION SELECT 7, 8, 7 UNION SELECT 9, 8, 13 UNION SELECT 10, 8, 16 UNION SELECT 11, 8, 15 UNION SELECT 12, 8, 5 UNION SELECT 16, 8, 9 UNION SELECT 3, 9, 7 UNION SELECT 5, 9, 3 UNION SELECT 6, 9, 8 UNION SELECT 7, 9, 4 UNION SELECT 9, 9, 9 UNION SELECT 11, 9, 8 UNION SELECT 12, 9, 3 UNION SELECT 13, 9, 9 UNION SELECT 14, 9, 8 UNION SELECT 15, 9, 6 UNION SELECT 1, 10, 7 UNION SELECT 3, 10, 4 UNION SELECT 4, 10, 8 UNION SELECT 5, 10, 7 UNION SELECT 6, 10, 5 UNION SELECT 10, 10, 9 UNION SELECT 12, 10, 7 UNION SELECT 14, 10, 11 UNION SELECT 15, 10, 9 UNION SELECT 16, 10, 11 UNION SELECT 1, 11, 5 UNION SELECT 2, 11, 4 UNION SELECT 3, 11, 11 UNION SELECT 4, 11, 6 UNION SELECT 10, 11, 8 UNION SELECT 11, 11, 7 UNION SELECT 13, 11, 10 UNION SELECT 14, 11, 6 UNION SELECT 15, 11, 8 UNION SELECT 16, 11, 7 UNION SELECT 2, 12, 8 UNION SELECT 3, 12, 5 UNION SELECT 4, 12, 5 UNION SELECT 5, 12, 4 UNION SELECT 8, 12, 11 UNION SELECT 10, 12, 5 UNION SELECT 16, 12, 4 UNION SELECT 1, 13, 10 UNION SELECT 2, 13, 7 UNION SELECT 5, 13, 12 UNION SELECT 6, 13, 6 UNION SELECT 7, 13, 8 UNION SELECT 8, 13, 10 UNION SELECT 10, 13, 13 UNION SELECT 11, 13, 10 UNION SELECT 12, 13, 9 UNION SELECT 13, 13, 12 UNION SELECT 14, 13, 10 UNION SELECT 4, 14, 10 UNION SELECT 7, 14, 9 UNION SELECT 11, 14, 14 UNION SELECT 12, 14, 8 UNION SELECT 14, 14, 12 UNION SELECT 16, 14, 13 UNION SELECT 1, 15, 4 UNION SELECT 3, 15, 3 UNION SELECT 4, 15, 7 UNION SELECT 5, 15, 6 UNION SELECT 6, 15, 9 UNION SELECT 10, 15, 6 UNION SELECT 11, 15, 6 UNION SELECT 13, 15, 6 UNION SELECT 15, 15, 11 UNION SELECT 16, 15, 6 UNION SELECT 1, 16, 6 UNION SELECT 5, 16, 7 UNION SELECT 6, 16, 4 UNION SELECT 7, 16, 10 UNION SELECT 8, 16, 4 UNION SELECT 9, 16, 10 UNION SELECT 10, 16, 7 UNION SELECT 11, 16, 5 UNION SELECT 13, 16, 7 UNION SELECT 15, 16, 7 UNION SELECT 1, 17, 11 UNION SELECT 6, 17, 7 UNION SELECT 7, 17, 3 UNION SELECT 9, 17, 7 UNION SELECT 11, 17, 9 UNION SELECT 16, 17, 5 UNION SELECT 1, 18, 8 UNION SELECT 2, 18, 10 UNION SELECT 4, 18, 11 UNION SELECT 8, 18, 6 UNION SELECT 9, 18, 8 UNION SELECT 10, 18, 14 UNION SELECT 11, 18, 12 UNION SELECT 13, 18, 11 UNION SELECT 15, 18, 5 UNION SELECT 16, 18, 12 UNION SELECT 1, 19, 12 UNION SELECT 2, 19, 13 UNION SELECT 5, 19, 13 UNION SELECT 7, 19, 6 UNION SELECT 9, 19, 14 UNION SELECT 10, 19, 17 UNION SELECT 11, 19, 16 UNION SELECT 15, 19, 13 UNION SELECT 2, 20, 14 UNION SELECT 3, 20, 9 UNION SELECT 5, 20, 16 UNION SELECT 8, 20, 9 UNION SELECT 10, 20, 10 UNION SELECT 14, 20, 13 UNION SELECT 1, 21, 9 UNION SELECT 2, 21, 9 UNION SELECT 3, 21, 8 UNION SELECT 4, 21, 9 UNION SELECT 5, 21, 10 UNION SELECT 6, 21, 10 UNION SELECT 7, 21, 6 UNION SELECT 8, 21, 5 UNION SELECT 9, 21, 15 UNION SELECT 10, 21, 12 UNION SELECT 11, 21, 11 UNION SELECT 12, 21, 6 UNION SELECT 14, 21, 9 UNION SELECT 16, 21, 10 UNION SELECT 2, 22, 12 UNION SELECT 5, 22, 11 UNION SELECT 6, 22, 11 UNION SELECT 8, 22, 8 UNION SELECT 9, 22, 12 UNION SELECT 10, 22, 10 UNION SELECT 15, 22, 12 UNION SELECT 16, 22, 14
Edited by - Arnold Fribble on 01/19/2002 08:17:55