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

Problema con subconsulta :S

Estas en el tema de Problema con subconsulta :S en el foro de SQL Server en Foros del Web. Hola a todos, llevo un rato peleando con una subconsulta que no está funcionando y la verdad no se porque. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver ...
  #1 (permalink)  
Antiguo 15/02/2011, 14:32
 
Fecha de Ingreso: febrero-2011
Mensajes: 13
Antigüedad: 13 años, 9 meses
Puntos: 0
Problema con subconsulta :S

Hola a todos, llevo un rato peleando con una subconsulta que no está funcionando y la verdad no se porque.

Código SQL:
Ver original
  1. SELECT (SELECT (CASE WHEN (isnull(C.caja_pesos,0)+isnull(C.caja_dolar,0)) > 0  THEN 'POSITIVO'
  2.     ELSE
  3.         CASE WHEN (isnull(C.caja_pesos,0)+isnull(C.caja_dolar,0)) < 0 THEN 'NEGATIVO'
  4.     ELSE ''
  5.     END
  6.     END)
  7.  
  8.          FROM xxx.dbo.cba c
  9.     WHERE a.rut = (CONVERT(VARCHAR,c.rut)+'-'+C.rut_dv)
  10.     GROUP BY (isnull(C.caja_pesos,0)+isnull(C.caja_dolar,0)), C.RUT,A.RUT)
  11.  
  12. FROM xx.dbo.abc a

Básicamente en la subconsulta, estoy sumando 2 enteros, y si son mayores que 0 quiero que entreguen 'positivo'. Lo mismo en el otro caso pero con negativos.
En el where, estoy relacionando la tabla C con la tabla A.

Esto resulta en una columna llena de NULL, y no de Positivos o negativos.
Sugerencias???
MUCHAS gracias!
  #2 (permalink)  
Antiguo 15/02/2011, 16:55
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Problema con subconsulta :S

No acabo de entender porque una SUB-CONSULTA, si lo unico que haces es determinar si son POSITIVOS o NEGATIVOS, de hecho, el ELSE, no funcionaria, o bien, son POSITIVOS > 0 o bien son NEGATIVOS =< 0

¿cierto?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 15/02/2011, 17:03
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Problema con subconsulta :S

Te sugeriria seguir este camino:
Código SQL:
Ver original
  1. SELECT *
  2. FROM xx.dbo.abc a
  3. INNER JOIN (
  4.     SELECT C.RUT,C.rut_dv,
  5.     CASE WHEN isnull(C.caja_pesos,0)+isnull(C.caja_dolar,0) > 0 THEN 'POSITIVO'
  6.     ELSE
  7.         CASE WHEN isnull(C.caja_pesos,0)+isnull(C.caja_dolar,0) < 0 THEN 'NEGATIVO'
  8.         ELSE ''
  9.         END
  10.     END valor
  11.     FROM xxx.dbo.cba
  12. ) c ON a.rut = CONVERT(VARCHAR,c.rut)+'-'+C.rut_dv
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 15/02/2011, 17:12
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Problema con subconsulta :S

Amigo Flavio

¿Tiene caso el ELSE?, digo, si son positivos o negativos, ¿habra algun otro resultado?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 15/02/2011, 17:38
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Respuesta: Problema con subconsulta :S

Creo que esta evaluando el cero.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 15/02/2011, 19:35
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Problema con subconsulta :S

Por eso decia, utilizar el <= (menor o igual a....)
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 16/02/2011, 07:21
 
Fecha de Ingreso: febrero-2011
Mensajes: 13
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Problema con subconsulta :S

Muchas Gracias por su ayuda, ayer lo resolví luego de despejarme un rato.
Sobre el ELSE, es por el 0 justamente. Al decir NEGATIVOS =< 0, contabilizo el 0 como negativo, y no quiero eso.
Gracias de nuevo :D

Última edición por krayon; 16/02/2011 a las 07:26
  #8 (permalink)  
Antiguo 16/02/2011, 10:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 4 meses
Puntos: 180
Respuesta: Problema con subconsulta :S

Perdon, pero me suena como el estado del tiempo CERO GRADOS, ni frio, ni calor...(es un chiste), saludos
__________________
MCTS Isaias Islas

Etiquetas: subconsulta
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 22:23.