Please take a look at the code, you can paste it into SSMS for testing if you like. . .CREATE TABLE #Contacts (CompanyID INT,ContactID INT,JobRoleScore INT)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (1,1,3)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (1,2,2)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (1,3,1)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (2,4,5)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (3,5,5)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (3,6,4)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (3,7,3)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (3,8,2)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (3,9,1)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (4,10,5)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (4,11,4)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (4,12,3)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (4,13,2)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (5,14,1)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (5,15,0)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (5,16,2)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (5,17,4)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (5,18,3)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (5,19,1)INSERT INTO #Contacts (CompanyID,ContactID,JobRoleScore) VALUES (5,20,4)
So my problem is thus:I've got a list of companies, and with each company I've got a list of contacts. there can be many contacts per company and each one has a job role. As i'm looking for IT contacts, then Managing directors etc I've given each role a score and wish to find for each company the contact with the highest JobRoleScore.So these are the results i'd expect based on the above data:CompanyID 1, ContactID 1 (JobRoleScore 3)CompanyID 2, ContactID 4 (JobRoleScore 5)CompanyID 3, ContactID 5 (JobRoleScore 5)CompanyID 4, ContactID 10 (JobRoleScore 5)CompanyID 5, ContactID 20 (JobRoleScore 4) [there are 2 contacts with JobRoleScorescore of 4 so select higher ContactID]I tried using GROUP BY and PARTITION BY but couldn't get those to work so may have to resort to some clever code. By the way, I'll be JOINing this to the companies table on the CompanyID field.Any assistance would be very much appreciated.Thanks guys.---------------------------------------------------------------------------------http://www.mannyroadend.co.uk The official unofficial website of Bury Football Club