Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Forzar el Query para que un valor null sea tomado como 0

Estas en el tema de Forzar el Query para que un valor null sea tomado como 0 en el foro de Bases de Datos General en Foros del Web. Hola. Amigos del Foro tengo el siguiente problema, necesito ordenar una query por por una columna llamada valor_comercial, esta columna es el resultado de la ...
  #1 (permalink)  
Antiguo 06/12/2004, 16:23
Avatar de myconatani  
Fecha de Ingreso: enero-2004
Ubicación: Pje.Ralún 8955 Santiago
Mensajes: 73
Antigüedad: 20 años, 4 meses
Puntos: 1
Forzar el Query para que un valor null sea tomado como 0

Hola.

Amigos del Foro tengo el siguiente problema, necesito ordenar una query por por una columna llamada valor_comercial, esta columna es el resultado de la multiplicación de la cantidad * valor comercial unitario, lamentablemente el valor comercial unitario viene nulo ya que no existe en la tabla correspondiente, de que manera puedo forzar el resultado para que me de cero y no null, ya que cuando la ordeno en forma Descendente o Ascendente este me deja primero los valores nulos. La idea es que asuma cero como valor y no null.

Ejemplo :

SELECT a.cod_marca, a.cod_modelo, a.cod_version, a.agno_fabrica, b.des_marca, c.des_modelo, d.des_version, COUNT(num_vin) cant, e.val_comer, COUNT(num_vin)*(e.val_comer) total FROM rac_maeveh a, rac_marca b, rac_modelo c, rac_version d LEFT JOIN rac_valcomer e ON (a.cod_marca=e.cod_marca AND a.cod_modelo=e.cod_modelo AND a.cod_version=e.cod_version AND a.agno_fabrica=e.ano_fabrica) WHERE a.cod_estado<>'07' AND a.cod_estado<>'08' AND a.cod_marca=b.cod_marca AND a.cod_marca=c.cod_marca AND a.cod_modelo=c.cod_modelo AND a.cod_marca=d.cod_marca AND a.cod_modelo=d.cod_modelo AND a.cod_version=d.cod_version GROUP BY a.cod_marca, a.cod_modelo, a.cod_version, a.agno_fabrica ORDER BY total ASC


Existe un solución, para este problema.

Nota : Estoy trabajando con BD MySql.


atte.
myconatani
__________________
myconatani
  #2 (permalink)  
Antiguo 06/12/2004, 16:32
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
SELECT a.cod_marca, a.cod_modelo, a.cod_version, a.agno_fabrica, b.des_marca, c.des_modelo, d.des_version, COUNT(num_vin) cant, e.val_comer, COUNT(num_vin)*(e.val_comer) total FROM rac_maeveh a, rac_marca b, rac_modelo c, rac_version d LEFT JOIN rac_valcomer e ON (a.cod_marca=e.cod_marca AND a.cod_modelo=e.cod_modelo AND a.cod_version=e.cod_version AND a.agno_fabrica=e.ano_fabrica) WHERE a.cod_estado<>'07' AND a.cod_estado<>'08' AND a.cod_marca=b.cod_marca AND a.cod_marca=c.cod_marca AND a.cod_modelo=c.cod_modelo AND a.cod_marca=d.cod_marca AND a.cod_modelo=d.cod_modelo AND a.cod_version=d.cod_version GROUP BY a.cod_marca, a.cod_modelo, a.cod_version, a.agno_fabrica ORDER BY Coalesce(total, 0) ASC

Esto es algo que puedes hacer en SQL Server, solo lo he traducido a MySQL e imagino que debe de funcionar bien con MySQL
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:21.