Refer this link..
http://msdn.microsoft.com/en-us/library/ms177673.aspx[
]
If you want only b.pac value by using group by then u have to use joins.... check the solution Below..
Select * From
(
SELECT a.Name,COUNT(b.pac) as PacCount
FROM TableA a
JOIN TableB b ON a.Taskgenid = b.Taskgenid
AND a.formgenid = b.formgenid
JOIN TableC c ON A.id = c.ID
JOIN TableD d ON D.Typeid = c.Typeid
WHERE a.date BETWEEN @Begindate AND @Enddate
AND a.type IN (1, 2, 3)
GROUP BY a.Name
) GroupTable gt
join
(SELECT a.Name,a.id,a.Type,a.date,a.ConName
FROM TableA a
JOIN TableB b ON a.Taskgenid = b.Taskgenid
AND a.formgenid = b.formgenid
JOIN TableC c ON A.id = c.ID
JOIN TableD d ON D.Typeid = c.Typeid
WHERE a.date BETWEEN @Begindate AND @Enddate
AND a.type IN (1, 2, 3)) BaseTable bt
on bt.Name=gt.Name