como le hago???

28/09/2004 - 20:48 por Chente | Informe spam
que tal amigo@s, trate de buscar antes en el foro la respuesta pero no supe
como buscar lo que necesitaba, vamos, no hay titulo alguno. a lo mejor
podria ser buscando case dentro del where, ya que es algo como lo requiero.

tengo una tabla con 3 campos

tabla
reporte peritaje1 peritaje2
23 null 4
45 null null
56 3 1
78 1 null
88 null null
96 3 4
97 null 2

lo que quiero crear un procedimiento almacenado, desde el cual a partir de
un parametro que le pase, en el cual le diga quiero los que tienen peritaje
o quiero los que aun no tienen peritaje, esto es, cuando tienen dato en
peritaje1 o peritaje2 es que se dice que tienen peritaje, cuando los dos
campos estan en null, se dice que aun no tienen peritaje.

entonces yo la consulta la tenia asi, pero no mas no.

declare @peritaje char(2)

set @peritaje = 'SP' --Sin peritaje

select reporte from tabla
where case when @peritaje = 'SP' then isnull(svperitaje2, svperitaje) is
null
else isnull(svperitaje2, svperitaje) is not null end


asi cuando al proc. le paso 'SP', me devualva los que no tienen peritaje, y
cuando le envie 'CP' me devuelva los que tienen peritaje.

por ahora lo que tengo dentro del proc. es esto

if @peritaje = 'SP'
begin
select reporte from tabla
where isnull(svperitaje2, svperitaje) is null
end
else
begin
select reporte from tabla
where isnull(svperitaje2, svperitaje) is not null
end


espero haber sido claro, y como siempre espero contar con su ayuda.



Vicente López.
 

Leer las respuestas

#1 Ygnacio Durán
28/09/2004 - 22:01 | Informe spam
Un saludo Vicente,

Que tal esto:


create table #tmp (reporte smallint, peritaje1 smallint, peritaje2 smallint)
insert into #tmp values (23,null, 4)
insert into #tmp values (45, null, null)
insert into #tmp values (56, 3, 1)
insert into #tmp values (78, 1, null)
insert into #tmp values (88, null, null)
insert into #tmp values (96, 3, 4)
insert into #tmp values (97, null, 2)


declare @peritaje char(2)

set @peritaje = 'CP' --Sin peritaje

select reporte from #tmp
where ( (@peritaje = 'SP' AND peritaje2 is null)
OR (@peritaje = 'CP' AND peritaje2 is not null))

drop table #tmp


*** Ygnacio Durán ***



"Chente" <foro[@]ausa.com.mx> escribió en el mensaje
news:
que tal , trate de buscar antes en el foro la respuesta pero no


supe
como buscar lo que necesitaba, vamos, no hay titulo alguno. a lo mejor
podria ser buscando case dentro del where, ya que es algo como lo


requiero.

tengo una tabla con 3 campos

tabla
reporte peritaje1 peritaje2
23 null 4
45 null null
56 3 1
78 1 null
88 null null
96 3 4
97 null 2

lo que quiero crear un procedimiento almacenado, desde el cual a partir de
un parametro que le pase, en el cual le diga quiero los que tienen


peritaje
o quiero los que aun no tienen peritaje, esto es, cuando tienen dato en
peritaje1 o peritaje2 es que se dice que tienen peritaje, cuando los dos
campos estan en null, se dice que aun no tienen peritaje.

entonces yo la consulta la tenia asi, pero no mas no.

declare @peritaje char(2)

set @peritaje = 'SP' --Sin peritaje

select reporte from tabla
where case when @peritaje = 'SP' then isnull(svperitaje2, svperitaje) is
null
else isnull(svperitaje2, svperitaje) is not null end


asi cuando al proc. le paso 'SP', me devualva los que no tienen peritaje,


y
cuando le envie 'CP' me devuelva los que tienen peritaje.

por ahora lo que tengo dentro del proc. es esto

if @peritaje = 'SP'
begin
select reporte from tabla
where isnull(svperitaje2, svperitaje) is null
end
else
begin
select reporte from tabla
where isnull(svperitaje2, svperitaje) is not null
end


espero haber sido claro, y como siempre espero contar con su ayuda.



Vicente López.


Preguntas similares