Comunidad de diseño web y desarrollo en internet online

Problema SQL

Citar            
MensajeEscrito el 27 May 2008 10:29 pm
Tengo la siguiente Consulta:

query = "select (t1.valor-(sum(t2)+$valor)) from tbl1 t1 left join tbl2 t2 using id where id = `$id` group by id"

El problema lo tengo en la suma, ya que cuando en la t2 es vacia o no tiene datos de un determinado id la suma me da NULL y por ende la resta igual me da NULL.-
Ej:

(15-(NULL+15)) me da null
(15-(0+15)) me da 0, esto es lo que necesito.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7
Citar            
MensajeEscrito el 28 May 2008 10:12 am
Agrega la condición de que t2 no sea null

AND !ISNULL(t2)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 28 May 2008 01:21 pm
o saca los datos a variables y con ellas haces la operacion respectivas U_U

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 28 May 2008 01:30 pm
Ya pude solucionar el problema hice un:

Código :

$valor = floatval ($row["val"]);

Esto hace que si el valor es NULL de retorna 0.- Muchas gracias.-

En el caso de sacar todos los valores y hacer la operaciones respectivas tendria que generar 2 o mas consultas.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7
Citar            
MensajeEscrito el 28 May 2008 01:40 pm

york3rs escribió:


En el caso de sacar todos los valores y hacer la operaciones respectivas tendria que generar 2 o mas consultas.-

Felicidades po allar la solucion

En ocasiones no es necesario hacer todo con un super-mega query, recuerda que hay operacion que tiene un costo elevado para el motor y probablemente seria mas probechoso hacerlo por partes

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 28 May 2008 04:08 pm

york3rs escribió:

Ya pude solucionar el problema hice un:

Código :

$valor = floatval ($row["val"]);

Esto hace que si el valor es NULL de retorna 0.- Muchas gracias.-

En el caso de sacar todos los valores y hacer la operaciones respectivas tendria que generar 2 o mas consultas.-


SQL rlz!!!!

Si quieres obtener un vero si ese valor es nulo, en SQL simplemente hubieras hecho esto:

Código :

SELECT 
  if( val IS NULL, 0, val ) AS GreatVal
FROM mi_tablita
;

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 28 May 2008 05:05 pm
No al valor de la tabla uno le Resto el resultado de la suma de todos los valores de tabla dos mas un valor x.- Pero cuando la tabla dos no tenia ningun valor me devolvia null y la operacion se cae por que me retorna como null...

Código :

.. (t1.valor-(sum(t2)+$valor)) as operacion ..

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7
Citar            
MensajeEscrito el 28 May 2008 06:11 pm
Simplemente haz esto:

Código :

(t1.valor-(sum(   if( t2 IS NULL, 0, t2 )     )+$valor)) as operacion

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 28 May 2008 08:58 pm
Perfecto, Muchas gracias Dano, no sabia que se podia hacer un if() dentro de una operacion.-

Todos los dias se aprende algo nuevo en Clab.

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.