create table MonthlyTarget ( TargetMonth varchar(10), SalesManCode varchar(10), TargetValue Decimal(12,3) ); go create table MonthlySales ( SalesManCode varchar(10), SalesDate datetime, AchievedValue Decimal(12,3) ); go insert into MonthlyTarget values ('January', 'Bob', 10000); insert into MonthlyTarget values ('February', 'Bob', 9000); insert into MonthlyTarget values ('March', 'Bob', 11000); insert into MonthlyTarget values ('April', 'Bob', 12000); insert into MonthlyTarget values ('May', 'Bob', 13000); insert into MonthlyTarget values ('January', 'Sara', 10000); insert into MonthlyTarget values ('February', 'Sara', 9000); insert into MonthlyTarget values ('March', 'Sara', 11000); insert into MonthlyTarget values ('April', 'Sara', 12000); insert into MonthlyTarget values ('May', 'Sara', 13000); insert into MonthlySales values ('Bob', '01/02/2009', 5000); insert into MonthlySales values ('Bob', '01/07/2009', 3500); insert into MonthlySales values ('Bob', '01/20/2009', 2500); insert into MonthlySales values ('Bob', '02/02/2009', 4000); insert into MonthlySales values ('Bob', '02/07/2009', 1500); insert into MonthlySales values ('Bob', '02/20/2009', 3500); insert into MonthlySales values ('Bob', '03/02/2009', 3000); insert into MonthlySales values ('Bob', '03/07/2009', 4500); insert into MonthlySales values ('Bob', '03/20/2009', 2500); insert into MonthlySales values ('Bob', '04/02/2009', 5000); insert into MonthlySales values ('Bob', '04/07/2009', 2500); insert into MonthlySales values ('Bob', '04/20/2009', 1500); insert into MonthlySales values ('Sara', '01/02/2009', 5500); insert into MonthlySales values ('Sara', '01/07/2009', 3500); insert into MonthlySales values ('Sara', '01/20/2009', 2500); insert into MonthlySales values ('Sara', '02/02/2009', 4300); insert into MonthlySales values ('Sara', '02/07/2009', 1500); insert into MonthlySales values ('Sara', '02/20/2009', 3500); insert into MonthlySales values ('Sara', '03/02/2009', 3200); insert into MonthlySales values ('Sara', '03/07/2009', 4500); insert into MonthlySales values ('Sara', '03/20/2009', 2500); insert into MonthlySales values ('Sara', '04/02/2009', 5200); insert into MonthlySales values ('Sara', '04/07/2009', 2500); insert into MonthlySales values ('Sara', '04/20/2009', 1500); go --************************************************************************** -- Define the query to pull the raw data --************************************************************************** declare @myQuery varchar(MAX); set @myQuery = ' select mt.SalesManCode, mt.TargetMonth, mt.TargetValue, ms.AchievedValue from MonthlyTarget mt JOIN MonthlySales ms on ( ms.SalesManCode = mt.SalesManCode and mt.TargetMonth = datename(ms.SalesDate)) '; --************************************************************************** -- Pivot the crap out of it. --************************************************************************** EXEC dbo.pivot_query @myQuery, 'SalesManCode', 'TargetMonth', 'max(TargetValue) Tar,sum(AchievedValue) Ach'; go