declare @ttDate1 datetime declare @ttDate2 datetime set @ttDate1='02/08/2002 00:00:00' set @ttDate2='02/08/2002 23:59:00' SELECT dbo.meetproc.dcode, avg(datediff(mi,meetings.enteror,meetings.exitor)) as timeused, count(dbo.meetproc.dcode) as proccnt, (select avg(cocasedata.itemunitcost * coCaseData.ActualQty) FROM dbo.meetings INNER JOIN dbo.meetproc ON dbo.meetings.meetingnumber = dbo.meetproc.meetingnumber INNER JOIN dbo.cocasedata ON dbo.meetings.meetingnumber = dbo.cocasedata.meetingnumber where meetings.begintime between @ttDate1 and @ttDate2 AND meetproc.dcode = meetproc.dcode) as avgResCost FROM dbo.meetings INNER JOIN dbo.meetproc ON dbo.meetings.meetingnumber = dbo.meetproc.meetingnumber where meetings.begintime between @ttDate1 and @ttDate2 group by dcodeIt almost works (to my amazing surprise), with the exception that the avgResCost returns the same value for every record returned. I pretty sure this is because of the where clause Meetproc.dcode=meetproc.dcode. I know I need to reference the tables with an alias, but I'm not sure of the right way to do this. Can you help