Hola,
Tengo un SP que hace 2 selects. Uno para una tabla de cabeceras, y otro para
una tabla de detalles. Esto es así, porque debo rellenar con ellos 2
datatables de ado.net.
Al SP se le pasan varios parametros para filtrar las cabeceras.
Lo que yo me pregunto, es si es posible desde dentro del sp, obtener los
registros de la tabla de detalle a partir de los registros filtrados de la
cabecera.
ejemplo:
alter procedure load_registros
@p int = null,
@p1 int = null,
..
@pn = null
as
//primer select: el de cabeceras filtrando
select col1, col2, col3, col4 from tabla where
(@p = null or @p = col1) and (@p1 is null or @p1 = col2)
//segundo select: el de detalles (que debe cumplir los mismos filtros. O
sea, devolver solo el detalle para las cabeceras recuperadas para el primer
select
select det1, det2, det3, det4 from detalles
inner join
(
select col1, col2, col3, col4 from tabla where
(@p = null or @p = col1) and (@p1 is null or @p1 = col2) ) cabecera
on detalle.det1 = cabecera.col1 and detalle.det2 = cabcera.col2
Así es como lo tengo.
Lo que me pregunto, es si hay alguna forma de evitar el tener que volver a
filtrar en el segundo select. Algo como poder, desde el sp, acceder a los
registros seleccionados por el priner select.
Grácias,
Miquel
Leer las respuestas