Q:

Find date Difference between rows based on first row

I am using SQL Server 2012. I have a QC check dates that will contain a id, event and date of event. below is the data for reference.
 QUALITY_CHECK_NO   EVENT                   DATE
 101                QC EVENT 1              2015-01-07 00:00:00
 101                QC EVENT 2              2015-08-10 00:00:00
 101                QC EVENT 3              2015-08-13 00:00:00
 101                QC EVENT 4              2015-08-25 00:00:00
 101                QC EVENT 5              2015-08-11 00:00:00
 101                QC EVENT 6              2015-08-13 00:00:00
 101                QC EVENT 7              2015-08-18 00:00:00
 101                QC EVENT 8              2015-08-19 00:00:00
 101                QC EVENT 9              2015-08-24 00:00:00
 101                QC EVENT 10             2015-08-25 00:00:00
 101                QC EVENT 11             2015-08-25 00:00:00
 101                QC EVENT 12             2015-09-11 00:00:00
 101                QC EVENT 13             2015-09-25 00:00:00
 102                QC EVENT 1              2015-01-07 00:00:00
 102                QC EVENT 2              2015-08-10 00:00:00
 102                QC EVENT 3              2015-08-26 00:00:00
 102                QC EVENT 4              2015-08-27 00:00:00
 102                QC EVENT 5              2015-08-21 00:00:00
 102                QC EVENT 6              2015-08-20 00:00:00
 102                QC EVENT 7              2015-08-26 00:00:00
 102                QC EVENT 8              2015-08-26 00:00:00
 102                QC EVENT 9              2015-08-27 00:00:00
 102                QC EVENT 10             2015-08-27 00:00:00
 102                QC EVENT 11             2015-08-27 00:00:00
 102                QC EVENT 12             2015-09-11 00:00:00
 102                QC EVENT 13             2015-09-25 00:00:00
 103                QC EVENT 1              2015-01-07 00:00:00
 103                QC EVENT 2              2015-08-10 00:00:00
 103                QC EVENT 3              2015-08-12 00:00:00
 103                QC EVENT 4              2015-08-25 00:00:00
 103                QC EVENT 5              2015-08-21 00:00:00
 103                QC EVENT 6              2015-08-11 00:00:00
 103                QC EVENT 7              2015-08-20 00:00:00
 103                QC EVENT 8              2015-08-20 00:00:00
 103                QC EVENT 9              2015-08-24 00:00:00
 103                QC EVENT 10             2015-08-25 00:00:00
 103                QC EVENT 11             2015-08-25 00:00:00
 103                QC EVENT 12             2015-09-11 00:00:00
 103                QC EVENT 13             2015-09-25 00:00:00
 104                QC EVENT 1              2015-10-20 00:00:00
 104                QC EVENT 2              2015-10-21 00:00:00
 104                QC EVENT 3              2015-10-21 00:00:00
 104                QC EVENT 4              2015-10-23 00:00:00

I want to find the days difference between the first event date and the next rows for each QualityCheckNo. I tried using a CTE however i'm getting the days difference between each rows and not what I am looking for. 
Basically I need to find how much days difference has been there from QC Event 1 and EVENTS. Something like below..
 QUALITY_CHECK_NO   EVENT       DATE                  DaysDiff
 101                QC EVENT 1  2015-01-07 00:00:00    0
 101                QC EVENT 2  2015-08-10 00:00:00    215
 101                QC EVENT 3  2015-08-13 00:00:00    218
 101                QC EVENT 4  2015-08-25 00:00:00    230
 101                QC EVENT 5  2015-08-11 00:00:00    216
 101                QC EVENT 6  2015-08-13 00:00:00    218

Below is the sql code that i used.
WITH tableNumbered AS (
        SELECT QUALITY_CHECK_NO, EVENT, DATE, ROW_NUMBER() OVER (PARTITION BY SiteID ORDER BY SITEID, RNUM) as rNum FROM [db_lexitas_ods].[dbo].[vw_GetPvtDocumentTAT] )
        SELECT t.*,
           DATEDIFF(day,t2.[DATE],t.[DATE])
      as Daysdiff
    FROM tableNumbered t
    LEFT JOIN tableNumbered t2 ON t.[QUALITY_CHECK_NO] = t2.[QUALITY_CHECK_NO] AND t2.rNum + 1 = t.rNum

A:

select
    datediff(
        dd,
        min(EVENTDATE) over (partition by QUALITY_CHECK_NO),
        EVENTDATE
    )
from T

This assumes that Event 1 is always the earliest date. The min expression could also be replaced by this to do a lookup by event name:
(
    select EVENTDATE from T t2
    where
            t2.QUALITY_CHECK_NO = t.QUALITY_CHECK_NO
        and EVENT = 'QC EVENT 1'
),

Your attempt nearly worked except that the join condition needs to be on rNum equal to 1 instead of rNum + 1. And since you want zero for the first difference a regular inner join works as well.
There is another posted answer that uses a group by and join to accomplish the same thing and the query plans are probably going to be the same as the correlated subquery in the second option above. Using a scalar subquery might have an advantage because it will throw an error if it were written wrong and returned more than one row.

