ok...a starter to build upon
maybe this is what you require or maybe not.
please note......it would be helpful to post set up scripts and expected answers when you start a new question.
Also....you may well find that you over simplified your example....questions were asked before about start/end dates remaining constant per claim....i dont see this has been answered
USE tempdb
GO
CREATE TABLE yourtable(
insurer VARCHAR(4) NOT NULL
,claim_number INTEGER NOT NULL
,location VARCHAR(5) NOT NULL
,start_date DATETIME NOT NULL
,end_date DATETIME NOT NULL
);
INSERT INTO yourtable(insurer,claim_number,location,start_date,end_date) VALUES ('john',5555,'east','1/5/10','1/17/10');
INSERT INTO yourtable(insurer,claim_number,location,start_date,end_date) VALUES ('john',5555,'west','1/5/10','1/17/10');
INSERT INTO yourtable(insurer,claim_number,location,start_date,end_date) VALUES ('john',5555,'south','1/5/10','1/17/10');
INSERT INTO yourtable(insurer,claim_number,location,start_date,end_date) VALUES ('jane',3333,'west','4/6/12','4/16/12');
INSERT INTO yourtable(insurer,claim_number,location,start_date,end_date) VALUES ('jane',3333,'north','4/6/12','4/16/12');
INSERT INTO yourtable(insurer,claim_number,location,start_date,end_date) VALUES ('jane',3333,'east','4/6/12','4/16/12');
SELECT insurer
, claim_number
, cast(DATEDIFF(day, start_date, end_date) * 1.0 / COUNT(*) as decimal(9,2)) AS result
FROM yourtable
GROUP BY insurer
, claim_number
, start_date
, end_date
________________________________________________________________
you can lead a user to data....but you cannot make them think
and remember....every day is a school day