Que hiciste que??? Si era tan sencillo como hacer esto:
Código SQL:
Ver originalCREATE TABLE #temp(
dato Nvarchar(20),
mes INT,
dia INT,
[año] INT
)
INSERT INTO #temp VALUES ('yo',3,4,2017)
INSERT INTO #temp VALUES ('tu',4,5,2017)
INSERT INTO #temp VALUES ('tu',5,6,2017)
SELECT * FROM(
SELECT CONVERT(datetime,CONVERT(VARCHAR(20),mes) + '/' + CONVERT(VARCHAR(20),dia) + '/' + CONVERT(VARCHAR(20),[año])) AS fecha, dato FROM #temp
) AS t1 WHERE fecha BETWEEN '01/01/2017' AND '04/30/2017'
Resultado:
fecha dato
2017-03-04 00:00:00.000 yo
2017-04-05 00:00:00.000 tu
No tenias porque hacer ciclos y demas......