This is the idea below in SQL.You may get some error while executing because this below query was not checked.But the idea lies between where condition and Inner join
SELECT S.Status, C.cnt
FROM YourTable S
INNER JOIN (SELECT Status, count(Status) as cnt
FROM YourTable
GROUP BY Status) C ON S.Status= C.Status where CONVERT(VARCHAR(10), inputdate, 101)between CONVERT(VARCHAR(10),S.FromDate,101) and CONVERT(VARCHAR(10),S.ToDate,101)
In above query
inputdate
is the date that you pass from your c# code to the stored procedure as input parameter.
After getting this data from sql feed it to the data table or list what ever you use and then bind to the data grid/gridview.