Примерно так будет:
begin tran;
go
create table #t1(
ID int identity,
City varchar,
RegisterDate datetime
);
declare @firstDate datetime, @secondDate datetime;
set @firstDate = '2012-1-1';
set @secondDate = '2012-1-2';
insert into #t1 values
('A', @firstDate),
('A', @firstDate),
('B', @firstDate),
('B', @firstDate),
('B', @firstDate),
('A', @secondDate),
('A', @secondDate),
('A', @secondDate),
('B', @secondDate),
('B', @secondDate);
select * from #t1;
select pvt.*
from(
select ID, City, RegisterDate
from #t1
) a
pivot(
count(a.ID)
for a.RegisterDate in ([2012-1-1], [2012-1-2])
) as pvt;
drop table #t1;
go
rollback tran;