drew.allen (9/23/2015)
Perhaps I'm missing something, but if you want to look specifically at the second ticket, then COUNT is the wrong aggregate. Try the following.
WITH Ticket_Number AS (
SELECT ti.person_ID, ticket_date, ROW_NUMBER() OVER(PARTITION BY ti.person_ID ORDER BY ti.ticket_date) AS ticket_number
FROM @TicketsIssued ti
)
SELECT COUNT(tn.person_ID), tr.DateFrom, tr.DateTo
FROM Ticket_Number AS tn
INNER JOIN @TicketRange AS tr
ON tn.ticket_date BETWEEN tr.DateFrom AND tr.DateTo
WHERE tn.ticket_number = 2
GROUP BY tr.DateFrom, tr.DateTo
Drew
I like that. It did not cross my mind to do it that way.