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

Duda consulta mysql

Estas en el tema de Duda consulta mysql en el foro de Mysql en Foros del Web. Hola: estoy intentando realizar esta consulta, pero no me funciona: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original SELECT    cliente.dni , cliente.nombre , ( SUM ( ...
  #1 (permalink)  
Antiguo 15/05/2013, 01:00
 
Fecha de Ingreso: mayo-2013
Mensajes: 16
Antigüedad: 10 años, 11 meses
Puntos: 0
Duda consulta mysql

Hola:

estoy intentando realizar esta consulta, pero no me funciona:


Código MySQL:
Ver original
  1. SELECT  
  2.  cliente.dni, cliente.nombre, (SUM(CASE WHEN (saldos.cuenta1 = cliente.dni AND saldos.saldopositivo > saldos.saldonegativo) OR (saldos.cuenta2 = cliente.dni AND saldos.saldonegativo > saldos.saldopositivo) THEN 2 ELSE 0 END) + SUM(CASE WHEN (
  3. saldos.cuenta1 = cliente.dni OR saldos.cuenta2 = cliente.dni) AND (saldos.saldopositivo = saldos.saldonegativo
  4. ) THEN 1 ELSE 0 END)) AS valor
  5.  
  6. FROM datoscliente cliente LEFT OUTER JOIN resultados saldos ON cliente.dni IN (saldos.cuenta1,saldos.cuenta2)
Me presenta los datos, pero no ejecuta las operaciones de suma, y los valores saldopositivo y saldonegativo me aparecen con valor null, cuando tienen valor entero en su tabla correspondiente.

¿Porque no tiene en cuenta los valores de saldopositivo y saldonegativo(en su tabla si aparecen correctamente con valor entero) para hacer las operaciones correspondientes de la suma en función del THEN?


Muchisimas gracias por vuestra ayuda

Última edición por gnzsoloyo; 15/05/2013 a las 05:18 Razón: SQL sin etiquetar. Usar Highlight "SQL" o "MySQL".
  #2 (permalink)  
Antiguo 15/05/2013, 01:20
Avatar de arcanisgk122  
Fecha de Ingreso: junio-2010
Mensajes: 755
Antigüedad: 13 años, 10 meses
Puntos: 28
Respuesta: Duda consulta mysql

a ver te ayudamos de la siguiente forma

aprende a usar;
HIGHLIGHT="PHP"][/HIGHLIGHT

necesitamos ver la estructura de la tabla

y sustituye esos nombre de columna muy mal XXX.yyy por xxxyyy
__________________
Cooler Master Gladiator 600 - AMD PHENOM II X4 955 @ 3.5GHZ
GA-MA78GM-US2H - Super Talent 800 2GB x 2 Dual, (Unganged)
PSU Cooler Master eXtreme Power Plus 500W - Saphire R7-260OC-2GB
  #3 (permalink)  
Antiguo 15/05/2013, 03:08
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda consulta mysql

arcanisgk122: El Highlight en este foro es "SQL" o "MySQL", no se usan otros.
En este foro no se permite postear códigos de programación.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 15/05/2013, 04:53
 
Fecha de Ingreso: mayo-2013
Mensajes: 16
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Duda consulta mysql

Hola:

La verdad es que estoy empezando con las BD y no tengo mucha idea como habréis podido comprobar.

La consulta no la he creado yo, sino que estoy intentando adaptarla.


Voy a intentar solucionarlo de otra forma, si no pudiese ya lo comento

Os agradezco el interés.

Muchísimas gracias
  #5 (permalink)  
Antiguo 15/05/2013, 06:01
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: Duda consulta mysql

La consulta es poco entendible, incluso algo confusa, y muy mal escrito el JOIN. Necesitas más experiencia en SQL para meterte en consultas complejas y no es buena idea emepzar por ellas.
De todos modos, si entendí algo de lo que quieres, podría plantease así:
Código MySQL:
Ver original
  1. SELECT dni, nombre, SUM(valor) valor
  2.     SELECT
  3.         DC.dni,
  4.         DC.nombre,
  5.         SUM(IF(S1.saldopositivo <> S1.saldonegativo, 2, 0) valor
  6.     FROM datoscliente C INNER JOIN resultados S1 ON C.dni = S1.cuenta1
  7.     SELECT
  8.         DC.dni,
  9.         DC.nombre,
  10.         SUM(IF(S2.saldopositivo = S1.saldonegativo, 1, 0)) valor
  11.     FROM datoscliente C INNER JOIN resultados S2 ON C.dni = S2.cuenta2) T1;
Siempre sobre la base de que esto es una suposición basado en lo que parece ser que quieres.
Si esto no te da lo que necesitas, antes de plantear una consulta, posteanos exactamente qué es lo que se supone que intentas calcular, y si es posible la estructura de tablas y datos de muestra para poder intentar una prueba eficiente.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #6 (permalink)  
Antiguo 19/05/2013, 12:02
 
Fecha de Ingreso: mayo-2013
Mensajes: 16
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Duda consulta mysql

Hola:

Disculpa gnzsoloyo, tienes razón, estoy demasiado verde en este tema.

¿Podrias aconsejarme algún libro, tutorial online o video para aprender?.

Muchisimas gracias por tu interes

Etiquetas: join, select, tabla
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 21:56.