尝试:
select yr, [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]from(select datepart(month,minDate) mth, datepart(year,minDate) yr, count(*) cnt from (select min(OrderDate) minDate, max(OrderDate) maxDate from tblOrder group by email) sq where datediff(month, minDate, maxDate) > 0 group by datepart(month,minDate), datepart(year,minDate)) srcPIVOT(max(cnt) for mth in ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]) ) pvt
SQLFiddle在这里。



