How to solve this variable pass into batch_date? <p>I want to pass in @batch date into batch_date...But it shows error...The error is </p> <blockquote> <p>Column 'dbo.tnx_tid_InvCheck_Details.Batch_Date' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.</p> </blockquote> <p>The <code>InvCheck_Details</code> table has <code>batch_date</code> for each and every <code>part_no</code>. I want to group the part_no so that I can count(tid) and sum(tid_bal) by part_no. What should i do in order to run this script? TQ...</p> <pre><code>DECLARE @batch_date datetime SET @batch_date = '2012-10-13 00:00:00.000' CREATE TABLE #inv_check (batch_date datetime,part_no varchar(25),Number_of_tid int,Updated_DT int, Tot_Tid_Bal int) INSERT INTO #inv_check SELECT batch_date,part_no,COUNT(tid)as Number_of_tid,0,sum(Tid_Bal) FROM dbo.tnx_tid_InvCheck_Details where batch_date = @batch_date Group by part_no order by part_no UPDATE #inv_check SET Updated_DT = isnull(d.Updated_DT,0) --select i.part_no,i.Number_of_tid, isnull(d.Updated_DT,0) FROM #inv_check i LEFT OUTER JOIN (SELECT part_no, COUNT(LastUpdate_DT)as Updated_DT, sum(tid_bal) as Tid_bal_sum FROM dbo.tnx_tid_InvCheck_Details Where NOT LastUpdate_DT IS NULL Group by part_no) d on i.part_no=d.part_no DECLARE @sql int DECLARE @sql1 int SELECT @sql1 = count(part_no) FROM #inv_check SELECT @sql = count(part_no) FROM #inv_check WHERE number_of_tid= Updated_DT SELECT @sql AS Parts_Counted,@sql1 AS Full_Parts Drop table #inv_check </code></pre>