There's a guy out there who has a great dynamic pivot CLR. This is a much simpler version. I _think_ this is original to me. I've been using it in various projects on this blog, but I don't see where I posted just this code.
Say you have records from your monitor that happens to Track EventLogs.
We'll call it EventLog_Tracking for argument's sake (hint hint http://thebakingdba.blogspot.com/2015/05/powershell-eventlogtracking-capturing.html) and want to look at trends over time.
First, you'd need a grouped set.
SELECT sourcename, CONVERT(DATE, TimeGenerated) AS the_date, COUNT(*) AS the_count
WHERE sourcename LIKE 'microsoft-windows%'
GROUP BY SourceName, CONVERT(DATE,TimeGenerated)
ORDER BY CONVERT(DATE,TimeGenerated), SourceName
And you want it to look like...
Here's the base pivot code. For this example, replace down with "the_date" and across with "sourcename"
If you want a name or something instead of the number, then do something like "max(yourname)" instead of "sum(the_count)"