Here are a few variations. What you want can be achieved using Case Statements, Static Pivot and Dynamic Pivot. Dynamic Pivot would be my pick of doing it.--Creating TableCreate Table Ex(DATE varchar(30), AMOUNT Float, SIGN Char(1) )--Inserting Sample DataInsert into ExSelect 'Jan 06 2012', 448.32, 'I'Union ALLSelect 'Jan 06 2012', 870.00, 'B'Union ALLSelect 'Jan 09 2012', 576.96, 'W'Union ALLSelect 'Jan 12 2012', 523.12, 'W'Union ALLSelect 'Jan 13 2012', 1446.75, 'W'Union ALLSelect 'Jan 13 2012', 870.00, 'B'Union ALLSelect 'Jan 13 2012', 528.75, 'A'Union ALLSelect 'Jan 16 2012', 185.62, 'W'Union ALLSelect 'Jan 16 2012', 870.00, 'W'Union ALLSelect 'Jan 16 2012', 319.20, 'B'Union ALLSelect 'Jan 16 2012', 319.20, 'B'Union ALLSelect 'Jan 16 2012', 870.00, 'W'Union ALLSelect 'Jan 16 2012', 870.00, 'W'Union ALLSelect 'Jan 16 2012', 870.00, 'W'Union ALLSelect 'Jan 16 2012', 870.00, 'W'--Query Using CaseSelect DATE, SUM(Amount) As Amount,Sum(Case When SIGN = 'I' Then 1 Else 0 End) As I,Sum(Case When SIGN = 'B' Then 1 Else 0 End) As B,Sum(Case When SIGN = 'W' Then 1 Else 0 End) As W,Sum(Case When SIGN = 'A' Then 1 Else 0 End) As AFrom ExGroup By Date--Static PivotSelect a.DATE, Amount, [I], [B], [W], [A] From(Select DATE, SUM(Amount) As Amount From ExGroup By DATE) As aJOIN(Select Date, [I], [B], [W], [A] From Ex Pivot (Count(Amount) For Sign IN ([I], [B], [W], [A])) As pvt) As b on a.Date = b.Date--Dynamic pivotDeclare @cols varchar(max), @sql varchar(max)Declare @temp Table(Cols varchar(max) )Insert Into @tempSelect Distinct SIGN From ExSelect @cols = Coalesce(@cols + ', ', '') + Quotename(Cols) From @tempSet @sql = 'Select a.DATE, Amount, '+@cols+' From (Select DATE, SUM(Amount) As Amount From Ex Group By DATE) As a JOIN (Select Date, '+@cols+' From Ex Pivot (Count(Amount) For Sign IN ('+@cols+')) As pvt) As b on a.Date = b.Date'Execute (@sql)N 28° 33' 11.93148"E 77° 14' 33.66384"