cálculo de filas

04/04/2007 - 10:04 por Tonic | Informe spam
Hola!

Tengo una tabla que hace un join con otra que tiene varios campos
boolean. Tengo que hacer una consulta que tenga varios campos
calculados que vandrán 1 o 0 según el valor de sus correspondientes
campos boolean. en medio de mi SELECT tengo así:

SELECT ...,...,
CASE T2.FlgAnulada
WHEN 'S' THEN 1
END AS NumAnuladas,
CASE T2.FlgFallada
WHEN 'S' THEN 1
END AS NumFalladas,
CASE T2.FlgFinalizada
WHEN 'S' THEN 1
END AS NumFinalizadas,

Vale, todo ok, pero hay otro cálculo que sería 1 si NumAnuladas y
NumFalladas es 0. Seguro que hay mil formas sencillas de hacerlo, pero
ahora mismo no encuentro ninguna válida.

Saludos y gracias, y perdón por el tocho :-)
Tonic

Preguntas similare

Leer las respuestas

#1 Jose Mariano Alvarez
04/04/2007 - 11:37 | Informe spam
En el post ,
DIJO .
Hola!

Tengo una tabla que hace un join con otra que tiene varios campos
boolean. Tengo que hacer una consulta que tenga varios campos
calculados que vandrán 1 o 0 según el valor de sus correspondientes
campos boolean. en medio de mi SELECT tengo así:

SELECT ...,...,
CASE T2.FlgAnulada
WHEN 'S' THEN 1
END AS NumAnuladas,
CASE T2.FlgFallada
WHEN 'S' THEN 1
END AS NumFalladas,
CASE T2.FlgFinalizada
WHEN 'S' THEN 1
END AS NumFinalizadas,

Vale, todo ok, pero hay otro cálculo que sería 1 si NumAnuladas y
NumFalladas es 0. Seguro que hay mil formas sencillas de hacerlo, pero
ahora mismo no encuentro ninguna válida.

Saludos y gracias, y perdón por el tocho :-)
Tonic




Prueba algo asi.
Es la otra forma de escribir un CASE

case when numfalladas = o and numanuladas = 0 then 1
else 0
end



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.
Respuesta Responder a este mensaje
#2 Tonic
04/04/2007 - 11:51 | Informe spam

Prueba algo asi.
Es la otra forma de escribir un CASE

case when numfalladas = o and numanuladas = 0 then 1
else 0
end




Hola! He probado hacerlo así ya antes, pero da el error, ya que
NumFalladas y NumAnuladas no son campos físicos de la base de datos y
dice que no existen.

Saludos!
Tonic
Respuesta Responder a este mensaje
#3 Maxi
04/04/2007 - 13:37 | Informe spam
Hola, si no son campos fisicos y si alias lo que debes hacer entonces es
escrir nuevamente para formar el campos por ej

Case when campo1+campo2 = 'hola then


Se entiende?


Saludos

[Microsoft MVP SQL Server]
SQLTOTALConsulting - Servicios y consultoria de SQLServer
www.sqlgurus.org
Buenos Aires - Argentina
http://msmvps.com/blogs/maxiaccotto/

"Tonic" wrote in message
news:

Prueba algo asi.
Es la otra forma de escribir un CASE

case when numfalladas = o and numanuladas = 0 then 1
else 0
end




Hola! He probado hacerlo así ya antes, pero da el error, ya que
NumFalladas y NumAnuladas no son campos físicos de la base de datos y
dice que no existen.

Saludos!
Tonic
Respuesta Responder a este mensaje
#4 Maxi
04/04/2007 - 13:38 | Informe spam
Hola, si no son campos fisicos debes volver a escribir como los has formado,
la verdad que sin todo el codigo es dificil ayudar :(


Saludos

[Microsoft MVP SQL Server]
SQLTOTALConsulting - Servicios y consultoria de SQLServer
www.sqlgurus.org
Buenos Aires - Argentina
http://msmvps.com/blogs/maxiaccotto/

"Tonic" wrote in message
news:

Prueba algo asi.
Es la otra forma de escribir un CASE

case when numfalladas = o and numanuladas = 0 then 1
else 0
end




Hola! He probado hacerlo así ya antes, pero da el error, ya que
NumFalladas y NumAnuladas no son campos físicos de la base de datos y
dice que no existen.

Saludos!
Tonic
Respuesta Responder a este mensaje
#5 Jose Mariano Alvarez
04/04/2007 - 16:24 | Informe spam
En el post ,
DIJO .
>
> Prueba algo asi.
> Es la otra forma de escribir un CASE
>
> case when numfalladas = o and numanuladas = 0 then 1
> else 0
> end
>

Hola! He probado hacerlo así ya antes, pero da el error, ya que
NumFalladas y NumAnuladas no son campos físicos de la base de datos y
dice que no existen.

Saludos!
Tonic





Remplaza la condicion.

case when < condicion para que numfalladas sea = 1> and < condicion para
que numanuladas sea = 0> then 1
else 0
end



Saludos
Ing. Jose Mariano Alvarez


(Cambia los ceros por O y saca lo que sobra)


IMPORTANTE

Por favor traten de indicar la versión de SQL y Service Pack.
La inclusión de (CREATE, INSERTS, etc.) para poder reproducir el
problema también ayuda.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida