ahi ta :)
Código SQL:
Ver originalCREATE TABLE problema (
cve_sector INT
,cve_calculado INT
,cve_concepto INT
,signo VARCHAR
,tabla SYSNAME
,cve_subreporte INT
,cve_periodo_inicial INT
,cve_periodo_final INT)
INSERT INTO problema VALUES (101,205,100,'–','CONCEPTO', 20, 200001, 200011)
INSERT INTO problema VALUES (101,206,200,'+','CONCEPTO', 30, 200104, 200112)
INSERT INTO problema VALUES (102,206,200,'-','CONCEPTO', 40, 200104, 200112)
INSERT INTO problema VALUES (102,209,200,'+','CONCEPTO', 10, 200104, 200112)
INSERT INTO problema VALUES (103,209,200,'-','CONCEPTO', 20, 200104, 200112)
INSERT INTO problema VALUES (103,300,200,'+','CONCEPTO', 30, 200104, 200112)
WITH q AS
(
SELECT cve_sector,cve_calculado,cve_concepto,signo,tabla,cve_subreporte,cve_periodo_inicial,cve_periodo_final
FROM problema
UNION ALL
SELECT cve_sector,cve_calculado,cve_concepto,signo,tabla,cve_subreporte,cve_periodo_inicial + 1, cve_periodo_final
FROM q
WHERE cve_periodo_inicial < cve_periodo_final
)
SELECT cve_sector,cve_calculado,cve_concepto,signo,tabla,cve_subreporte,cve_periodo_inicial
FROM q ORDER BY cve_sector,cve_calculado,cve_concepto,cve_periodo_inicial
OPTION (MAXRECURSION 0)
tuve la idea de algo asi pero no recordaba como hacerlo asi que tuve que recurrir a san google :P aqui esta la liga de donde saque el query:
http://stackoverflow.com/questions/5...nge-of-numbers