Problemas al filtar una CASE

09/12/2004 - 18:28 por Cass | Informe spam
Alguien que me tire una soga =:)

Tengo una SELECT donde uno de los campos es una función CASE para obtener
una clasificación de sucursales por zona geográfica (a partir del campo
sucursal de la tabla).
En la misma select necesito poder filtrar una de las opciones arrojadas por
el CASE

He probado algunas variantes pero no logro dar con la solución.

Adjunto la sentencia para aclarar un poco mas la idea:


Select
CODIGO,
SUM(IMPORTE),
MIN(FCH),
MIN(SUCURS) ,
CASE MIN(SUCURS)
WHEN '0001' THEN 'Sucursal Zona 1'
WHEN '0002' THEN 'Sucursal Zona 1'
WHEN '0003' THEN 'Sucursal Zona 2'
END
From VTMVH
Where CODIGO IS NULL
Group By CODIGO
Having SUM(IMPORTE) <>0 and (MIN(FCH) >= '2004-10-01' and MIN(FCH)<=
'2004-10-31'

Desde ya muchas gracias.

Preguntas similare

Leer las respuestas

#1 Maxi
09/12/2004 - 18:58 | Informe spam
Hola, y estas seguro que eso retornara registros?


Salu2
Maxi


"Cass" escribió en el mensaje
news:%
Alguien que me tire una soga =:)

Tengo una SELECT donde uno de los campos es una función CASE para obtener
una clasificación de sucursales por zona geográfica (a partir del campo
sucursal de la tabla).
En la misma select necesito poder filtrar una de las opciones arrojadas
por el CASE

He probado algunas variantes pero no logro dar con la solución.

Adjunto la sentencia para aclarar un poco mas la idea:


Select
CODIGO,
SUM(IMPORTE),
MIN(FCH),
MIN(SUCURS) ,
CASE MIN(SUCURS)
WHEN '0001' THEN 'Sucursal Zona 1'
WHEN '0002' THEN 'Sucursal Zona 1'
WHEN '0003' THEN 'Sucursal Zona 2'
END
From VTMVH
Where CODIGO IS NULL
Group By CODIGO
Having SUM(IMPORTE) <>0 and (MIN(FCH) >= '2004-10-01' and MIN(FCH)<=
'2004-10-31'

Desde ya muchas gracias.






Respuesta Responder a este mensaje
#2 Cass
10/12/2004 - 13:55 | Informe spam
Que tal Maxi...
Esta retornando registros, pero lo que me esta faltando es lo que comente
antes, poder filtrar de alguna manera
según el resultado de la CASE, será factible?.

Saludos

"Maxi" escribió en el mensaje
news:%
Hola, y estas seguro que eso retornara registros?


Salu2
Maxi


"Cass" escribió en el mensaje
news:%
Alguien que me tire una soga =:)

Tengo una SELECT donde uno de los campos es una función CASE para obtener
una clasificación de sucursales por zona geográfica (a partir del campo
sucursal de la tabla).
En la misma select necesito poder filtrar una de las opciones arrojadas
por el CASE

He probado algunas variantes pero no logro dar con la solución.

Adjunto la sentencia para aclarar un poco mas la idea:


Select
CODIGO,
SUM(IMPORTE),
MIN(FCH),
MIN(SUCURS) ,
CASE MIN(SUCURS)
WHEN '0001' THEN 'Sucursal Zona 1'
WHEN '0002' THEN 'Sucursal Zona 1'
WHEN '0003' THEN 'Sucursal Zona 2'
END
From VTMVH
Where CODIGO IS NULL
Group By CODIGO
Having SUM(IMPORTE) <>0 and (MIN(FCH) >= '2004-10-01' and MIN(FCH)<=
'2004-10-31'

Desde ya muchas gracias.










Respuesta Responder a este mensaje
#3 Maxi
10/12/2004 - 14:01 | Informe spam
Hola, si podes, solo deberias poner en el having el campo del CASE algo asi
como:

Select
CODIGO,
SUM(IMPORTE),
MIN(FCH),
MIN(SUCURS) ,
CASE MIN(SUCURS)
WHEN '0001' THEN 'Sucursal Zona 1'
WHEN '0002' THEN 'Sucursal Zona 1'
WHEN '0003' THEN 'Sucursal Zona 2'
END
From VTMVH
Where CODIGO IS NULL
Group By CODIGO
Having SUM(IMPORTE) <>0 and (MIN(FCH) >= '2004-10-01' and MIN(FCH)< '2004-10-31' and min(sucurs) = '0001'



Salu2
Maxi


"Cass" escribió en el mensaje
news:%
Que tal Maxi...
Esta retornando registros, pero lo que me esta faltando es lo que comente
antes, poder filtrar de alguna manera
según el resultado de la CASE, será factible?.

Saludos

"Maxi" escribió en el mensaje
news:%
Hola, y estas seguro que eso retornara registros?


Salu2
Maxi


"Cass" escribió en el mensaje
news:%
Alguien que me tire una soga =:)

Tengo una SELECT donde uno de los campos es una función CASE para
obtener una clasificación de sucursales por zona geográfica (a partir
del campo sucursal de la tabla).
En la misma select necesito poder filtrar una de las opciones arrojadas
por el CASE

He probado algunas variantes pero no logro dar con la solución.

Adjunto la sentencia para aclarar un poco mas la idea:


Select
CODIGO,
SUM(IMPORTE),
MIN(FCH),
MIN(SUCURS) ,
CASE MIN(SUCURS)
WHEN '0001' THEN 'Sucursal Zona 1'
WHEN '0002' THEN 'Sucursal Zona 1'
WHEN '0003' THEN 'Sucursal Zona 2'
END
From VTMVH
Where CODIGO IS NULL
Group By CODIGO
Having SUM(IMPORTE) <>0 and (MIN(FCH) >= '2004-10-01' and MIN(FCH)<=
'2004-10-31'

Desde ya muchas gracias.














Respuesta Responder a este mensaje
#4 Cass
11/12/2004 - 16:31 | Informe spam
Maxi:
Con la alternativa que me propones me devuelve únicamente los registros
donde sucurs es '0001', pero en realidad
lo que estoy buscando es poder filtrar por 'Sucursal Zona 1' y que devuelva
tanto los registros donde
sucurs sea '0001' y '0002'.
Si tenes alguna alternativa para esto te lo agradezco

Saludos
Cass
Respuesta Responder a este mensaje
#5 MAXI
11/12/2004 - 16:39 | Informe spam
Amigo entonces ponlo con OR mas los otros valores que forman 'Sucursal Zona
1'




Maxi

Buenos Aires - Argentina
Desarrollador .NET 3 Estrellas
Microsoft User Group (MUG)
Mail: Maxi_accotto[arroba]speedy.com.ar

Msn Messenger:

"Cass" escribió en el mensaje
news:
Maxi:
Con la alternativa que me propones me devuelve únicamente los registros
donde sucurs es '0001', pero en realidad
lo que estoy buscando es poder filtrar por 'Sucursal Zona 1' y que
devuelva tanto los registros donde
sucurs sea '0001' y '0002'.
Si tenes alguna alternativa para esto te lo agradezco

Saludos
Cass

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida