SQL - Duda con un "case when"

 
Vista:

Duda con un "case when"

Publicado por jperet (19 intervenciones) el 18/04/2007 17:50:02
Buenas, quiero hacer que en una columna me aparezca el valor de un campo si este contiene algo.
Lo he hecho usando un case when, de la siguiente forma:

CASE WHEN tabla.campo is not null THEN tabla.campo

Me da error, hay alguna forma mejor de hacerlo?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda con un

Publicado por Isaías (5072 intervenciones) el 18/04/2007 20:22:28
Tal vez te falta el END, ¿Que error te da?

CASE WHEN tabla.campo is not null THEN tabla.campo END
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda con un

Publicado por jperet (19 intervenciones) el 20/04/2007 15:07:53
El error que me da es el siguiente:
'error al convertir tipo varchar a numeric'

Lo que quiero es que me muestre el valor del campo si este no es igual a 0 o nulo, es decir, si esta lleno, en caso contrario, si es 0, le impongo una serie de condiciones. Este campo es un numero.

No sé si me explico bien....
A ver si me puedes ayudar a ver donde falla,
muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda con un

Publicado por Isaías (5072 intervenciones) el 20/04/2007 20:16:26
El problema radica en que estas asumiendo que en tu campo tipo char, siempre traes NUMEROS y esto no es verdad, por lo que al momento de intentar convertir tu campo a NUMERICO, te manda el mensaje de error descrito.

Para saber que campos no traen numeros:

SELECT CAMPO FROM TABLA WHERE ISNUMERIC(CAMPO) = 0
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Duda con un

Publicado por josep (19 intervenciones) el 23/04/2007 16:15:52
Buenas Isaias,
sigo con el mismo problema, el tema está en que tengo una tabla de comerciales en la que, entre otras, hay la columna con el id del comercial, otra con el nombre, etc. y otra donde se fija un tanto por ciento de comision.
Hasta aquí bien, lo que ocurre es que hay algunos de ellos que tienen una comision variable en funcion de las ventas y demás, lo que me hace crear una consulta con "case when" para que aparezca esta comisión por linea de factura.

Los que tienen una comision variable, el campo "comision" de la tabla comerciales aparece a 0, mientras que los que tienen una comision fija este campo "comision" estará fijado en un valor.

Por tanto lo que quiero es que en la consulta me aparezca el campo comerciales.comision en el caso de que sea distinto de 0, si es 0 que me aplique las condiciones que yo le fijo.

No sé si me he explicado bien...
Gracias por la atención
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solucionado!!

Publicado por JOSEP (19 intervenciones) el 23/04/2007 16:36:19
Ya lo he solucionado, era una tonteria.
Gracias de todos modos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solucionado!!

Publicado por Isaías (5072 intervenciones) el 23/04/2007 20:46:16
Seria bueno que nos participaras de tu solucion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Solucionado!!

Publicado por nacho (3 intervenciones) el 07/08/2008 00:18:21
Si, adelante solucion!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar