Check 1 Table If No Data Check Second Table
You could try something like this query:

Declare @d1 date, @d2 date, @numreturned int
Set @begindate = '01/01/2015'
Set @enddate = '01/12/2015'
Set @numreturned = 0

SELECT @numreturned = COUNT(DISTINCT CAST(csdate as date)) 
FROM firsttabletocheck 
WHERE csdate &gt;= @begindate and csdate &lt; @enddate;

IF DATEDIFF(day, @begindate, @enddate) &gt; @numreturned
BEGIN 
    SELECT DISTINCT CAST(csdate as date))
    FROM secondtabletocheck 
    WHERE csdate &gt; @begindate &lt;= @enddate
        AND CAST(csdate as date) NOT IN (
            SELECT DISTINCT csdate = CAST(csdate as date)
            FROM firsttabletocheck 
            WHERE csdate &gt;= @begindate and csdate &lt; @enddate
        )
END


I am using CAST(csdate as date) everywhere because you datatype seems to be datetime. If you are not using the time part, you should consider changing the type to date. This will very likely leads to table scan with the second query.

I added a distinct because I don't know whether you have duplicates or several rows on the same day. If there is only 1 row per day, this is not needed.

I replaced the between by &gt;= and &lt;. (see @ypercubeᵀᴹ comments)

I am not sure what sort of output is needed precisely. You will have to adapt this query to your needs or add sample data and sample output. Right now it only show csdate missing from firsttabletocheck but present in secondtabletocheck.