• Sábado 21 de Diciembre de 2024, 11:54

Autor Tema:  Sub Query?  (Leído 3426 veces)

gokufast

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Sub Query?
« en: Jueves 6 de Septiembre de 2007, 06:57 »
0
hola amigos, como hago el query para que me pueda desplegar lo siguiente:

tengo una tabla bono, la cual tiene los siguientes campos con algunos datos:

vol_corr, vol_cod, vol_fecha, vol_saldo

1, 90, 2/1/2007, 50
2, 90, 2/2/2007, 60
3, 90, 2/3/2007, 50
4, 210, 3/5/2007, 100
5, 210, 3/6/2007, 150
6. 210, 3/7/2007, 160
7, 250, 5/9/2007, 80
8, 250, 5/10/2007, 90
9, 250, 5/15/2007, 10


lo que quiero que me salga es que me agrupe por vol_cod, pero que me salgan todas las fechas, y los saldos, ej

vol_cod=90
90, 2/1/2007
90, 2/2/2007
90, 2/3/2007

o

vol_cod=250
250, 5/9/2007, 80
250, 5/10/2007, 90
250, 5/15/2007, 10

saludos
What Did One Snowman Say To The Other Snowman???

Do you smell carrots??

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Sub Query?
« Respuesta #1 en: Jueves 6 de Septiembre de 2007, 12:10 »
0
Pues asi estan...

1, 90, 2/1/2007, 50
2, 90, 2/2/2007, 60
3, 90, 2/3/2007, 50

4, 210, 3/5/2007, 100
5, 210, 3/6/2007, 150
6. 210, 3/7/2007, 160

7, 250, 5/9/2007, 80
8, 250, 5/10/2007, 90
9, 250, 5/15/2007, 10


ordenalos por vol_corr  no capto el problema :ouch:


Saludo
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

gokufast

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Sub Query?
« Respuesta #2 en: Jueves 6 de Septiembre de 2007, 16:56 »
0
el query que uso es el siguiente,

SELECT vol_corr, vol_cod,
SUM(ifnull(vol_retus,0)),
SUM(ifnull(vol_depus,0)),
SUM(ifnull(vol_depus,0)-ifnull(vol_retus,0))
FROM bono
GROUP BY vol_cod

pero me los agrupa por vol_cod, y no puedo ver el detalle de las fechas de ese vol_cod

EL SUM(ifnull(vol_depus,0)-ifnull(vol_retus,0)) es el saldo que mencionaba antes
(nota:con where el query me daba error)
What Did One Snowman Say To The Other Snowman???

Do you smell carrots??

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Sub Query?
« Respuesta #3 en: Jueves 6 de Septiembre de 2007, 17:07 »
0
Citar
el query que uso es el siguiente,

SELECT vol_corr, vol_cod,
SUM(ifnull(vol_retus,0)),
SUM(ifnull(vol_depus,0)),
SUM(ifnull(vol_depus,0)-ifnull(vol_retus,0))
FROM bono
GROUP BY vol_cod

pero me los agrupa por vol_cod, y no puedo ver el detalle de las fechas de ese vol_cod
Claro, es que esa el la función de GROUP BY, lo que vos querés no es una agrupación de registros.

Como dice mi amigo FT, Ordená los registros por vol_corr.

Un saludo
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

gokufast

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Sub Query?
« Respuesta #4 en: Jueves 6 de Septiembre de 2007, 17:20 »
0
sin agrupar? porque si no le pongo el GROUP BY me da lo siguiente:

Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
What Did One Snowman Say To The Other Snowman???

Do you smell carrots??

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Sub Query?
« Respuesta #5 en: Jueves 6 de Septiembre de 2007, 18:13 »
0
Entonces tienes que agrupar por todos los campos que aparecen en el select

y esto hara que solo se sumen los que coincidan todos los campos es decir



Si tuvieras esto por ejemplo
Citar
1, 90, 2/1/2007, 50
2, 90, 2/2/2007, 60
3, 90, 2/3/2007, 50
4, 90, 2/3/2007, 50
5, 210, 3/5/2007, 100
6, 210, 3/7/2007, 150
7. 210, 3/7/2007, 160

Obtendrias (solo agruparia (3+4) y (6+7) ) por ejemplo
Citar
1, 90, 2/1/2007, 50
2, 90, 2/2/2007, 60
3, 90, 2/3/2007, 100
5, 210, 3/5/2007, 100
6, 210, 3/7/2007, 310


No se si eso resuelva tu problema si no es asi, aca andamos los de solocodigo
Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Sub Query?
« Respuesta #6 en: Jueves 6 de Septiembre de 2007, 18:28 »
0
Cita de: "gokufast"
sin agrupar? porque si no le pongo el GROUP BY me da lo siguiente:

Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause
Citar
lo que quiero que me salga es que me agrupe por vol_cod, pero que me salgan todas las fechas, y los saldos, ej

vol_cod=90
90, 2/1/2007
90, 2/2/2007
90, 2/3/2007

o

vol_cod=250
250, 5/9/2007, 80
250, 5/10/2007, 90
250, 5/15/2007, 10

Sería algo así:
Código: Text
  1. SELECT vol_cod, vol_fecha, vol_saldo FROM bono
  2. ORDER BY vol_cod
  3.  
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

gokufast

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Sub Query?
« Respuesta #7 en: Jueves 6 de Septiembre de 2007, 18:39 »
0
muchisimas gracias, por la ayuda:

el query:
SELECT vol_cod, vol_fecha, vol_saldo FROM bono
ORDER BY vol_cod

me saca, por todos los vol_cod y yo solo quiero por los que yo elija

ej:

vol_cod=250
250, 5/9/2007, 80
250, 5/10/2007, 90
250, 5/15/2007, 10
What Did One Snowman Say To The Other Snowman???

Do you smell carrots??

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Sub Query?
« Respuesta #8 en: Jueves 6 de Septiembre de 2007, 18:50 »
0
Cita de: "gokufast"
muchisimas gracias, por la ayuda:

el query:
SELECT vol_cod, vol_fecha, vol_saldo FROM bono
ORDER BY vol_cod

me saca, por todos los vol_cod y yo solo quiero por los que yo elija

ej:

vol_cod=250
250, 5/9/2007, 80
250, 5/10/2007, 90
250, 5/15/2007, 10
te faltaría agregarle un where:

Código: Text
  1. SELECT vol_cod, vol_fecha, vol_saldo FROM bono WHERE vol_cod=250 ORDER BY vol_cod;
  2.  
Bueno, en este caso el ORDER BY no tiene sentido porque va a haber un solo código.

Un saludo
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

gokufast

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Sub Query?
« Respuesta #9 en: Jueves 6 de Septiembre de 2007, 18:55 »
0
creo que es una consulta tipo maestro/detalle
What Did One Snowman Say To The Other Snowman???

Do you smell carrots??

gokufast

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Sub Query?
« Respuesta #10 en: Jueves 6 de Septiembre de 2007, 19:14 »
0
haciendo pruebas y mas pruebas, logre mas o menos lo que queria que es asi:

select vol_corr, vol_cod, vol_fecha,tipo_mov,
sum(ifnull(vol_depus,0)) as dep,
sum(ifnull(vol_retus,0)) as ret,
SUM(ifnull(vol_depus,0)-ifnull(vol_retus,0)) as saldo
from bono
where vol_cod=90
GROUP BY vol_corr


y lo que sale es mas o menos asi

vol_corr, vol_cod, vol_fecha, tipo_mov, dep, ret, saldo
30       90   31/10/2002   DEP   40,49     0,00     40,49
31       90   30/11/2002   DEP   40,27     0,00     40,27
32       90   31/12/2002   DEP   40,11     0,00     40,11
33       90   31/12/2002   RET   0,00     99,59     -99,59
34       90   31/01/2003   DEP   39,74     0,00     39,74
35       90   28/02/2003   DEP   39,58     0,00     39,58
36       90   31/03/2003   DEP   39,37     0,00     39,37
 
donde dep es los depositos, ret son los retiros y saldo es la resta de ambos

mi problema va por que me sume los saldos de cada fecha, ej
31/10/2002   DEP   40,49   0,00   40,49
30/11/2002   DEP   40,27   0,00   80,76
31/12/2002   DEP   40,11   0,00   120,87
31/12/2002   RET   0,00   99,59   21,28
31/01/2003   DEP   39,74   0,00   39,74
28/02/2003   DEP   39,58   0,00   100,6

muchisimas gracias son unos capos  B)
What Did One Snowman Say To The Other Snowman???

Do you smell carrots??

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Sub Query?
« Respuesta #11 en: Jueves 6 de Septiembre de 2007, 19:17 »
0
Cita de: "gokufast"
creo que es una consulta tipo maestro/detalle
¿DE QUE ESTÁS HABLANDO WILLYS?

¿Cómo que creés? :think:

¿Cuáles son las tablas que tenés y cuales son todos sus campos y que es lo que querés obtener?
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Sub Query?
« Respuesta #12 en: Jueves 6 de Septiembre de 2007, 19:20 »
0
Cita de: "gokufast"
haciendo pruebas y mas pruebas, logre mas o menos lo que queria que es asi:

select vol_corr, vol_cod, vol_fecha,tipo_mov,
sum(ifnull(vol_depus,0)) as dep,
sum(ifnull(vol_retus,0)) as ret,
SUM(ifnull(vol_depus,0)-ifnull(vol_retus,0)) as saldo
from bono
where vol_cod=90
GROUP BY vol_corr


y lo que sale es mas o menos asi

vol_corr, vol_cod, vol_fecha, tipo_mov, dep, ret, saldo
30       90   31/10/2002   DEP   40,49     0,00     40,49
31       90   30/11/2002   DEP   40,27     0,00     40,27
32       90   31/12/2002   DEP   40,11     0,00     40,11
33       90   31/12/2002   RET   0,00     99,59     -99,59
34       90   31/01/2003   DEP   39,74     0,00     39,74
35       90   28/02/2003   DEP   39,58     0,00     39,58
36       90   31/03/2003   DEP   39,37     0,00     39,37
 
donde dep es los depositos, ret son los retiros y saldo es la resta de ambos

mi problema va por que me sume los saldos de cada fecha, ej
31/10/2002   DEP   40,49   0,00   40,49
30/11/2002   DEP   40,27   0,00   80,76
31/12/2002   DEP   40,11   0,00   120,87
31/12/2002   RET   0,00   99,59   21,28
31/01/2003   DEP   39,74   0,00   39,74
28/02/2003   DEP   39,58   0,00   100,6

muchisimas gracias son unos capos  B)
Jaja, te ayudamos sin siquiera entenderte. Bueno, en mi caso por lo menos.

Saludos :hola:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

gokufast

  • Miembro activo
  • **
  • Mensajes: 79
    • Ver Perfil
Re: Sub Query?
« Respuesta #13 en: Jueves 6 de Septiembre de 2007, 20:06 »
0
jeje, gracias de nuevo, esque como estoy un poco preocupado por este tema pues no sabia como hacerme entender

tengo otra consulta sobre esto mismo pero creo que lo voy a poner en un nuevo tema
What Did One Snowman Say To The Other Snowman???

Do you smell carrots??

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Sub Query?
« Respuesta #14 en: Jueves 6 de Septiembre de 2007, 20:09 »
0
Cita de: "Mollense"
Jaja, te ayudamos sin siquiera entenderte. Bueno, en mi caso por lo menos.

Saludos :hola:
Creo que en ambos casos, yo tampoco entendi mucho cual era la idea  :P  :rolleyes:


Pero que bien,

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================