Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 23-03-2010
smessina smessina is offline
Miembro
 
Registrado: ene 2006
Posts: 51
Poder: 19
smessina Va por buen camino
seleccionar el primero de cada grupo

Antes que nada Gracias a todos los que se tomaran en trabajo de leer este post.

trabajo con delphi 7 + zeos + mysql 5.0

tengo una tabla llamada cuotas :
Código:
ID    codcredito cuotaNro    importe   pagada
1     1                1 de 3        100       true
2     1                2 de 3        100       true
3     1                3 de 3        100       false
4     2                1 de 3        150       true
5     2                2 de 3        150       false
6     2                3 de 3        150       false
y necesito tomar la primera cuota impaga de cada codcredito

es decir necesito crear una vista que me traiga :

Código:
id codcredito   cuotanro  importe 
3  1                 3 de 3     100      
5  2                 2 de 3     150
que seria algo como :

Código SQL [-]
select id, codcredito, cuotanro, importe from cuotas where pagada=false group by codcredito, cuotanro, importe

pero el problema que tengo es que por alguna extraña razon el Mysql no me las ordena por el id por lo que a veces cuando hago los appends desde el tztable cuando llamo una consulta "select * from cuotas" los id me aparecen desordenados por lo que a veces la consulta anterior me devuelve:
Código:
id codcredito   cuotanro  importe 
3   1                 3 de 3     100      
6   2                 3 de 3     150
Si algo no se entiende por favor me avisan y tratare de ser mas Claro.

desde ya muchas Gracias
Responder Con Cita
  #2  
Antiguo 23-03-2010
cemese cemese is offline
Registrado
 
Registrado: mar 2008
Posts: 2
Poder: 0
cemese Va por buen camino
Buenas:

Has probado a añadir la cláusula ORDER BY a la sentencia SQL.

Un saludo
Responder Con Cita
  #3  
Antiguo 23-03-2010
smessina smessina is offline
Miembro
 
Registrado: ene 2006
Posts: 51
Poder: 19
smessina Va por buen camino
Gracias

si probe pero al ordenamiento lo hace despues de armar la consulta
por lo que me ordena ya el resultdado de la consulta y no antes de hacer la consulta.
Responder Con Cita
  #4  
Antiguo 23-03-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola smessina

Cita:
Empezado por smessina Ver Mensaje
........tengo una tabla llamada cuotas :
Código:
ID    codcredito cuotaNro    importe   pagada
1     1                1 de 3        100       true
2     1                2 de 3        100       true
3     1                3 de 3        100       false
4     2                1 de 3        150       true
5     2                2 de 3        150       false
6     2                3 de 3        150       false
y necesito tomar la primera cuota impaga de cada codcredito

es decir necesito crear una vista que me traiga :

Código:
id codcredito   cuotanro  importe 
3  1                 3 de 3     100      
5  2                 2 de 3     150
que seria algo como :


Código SQL [-]select id, codcredito, cuotanro, importe from cuotas where pagada=false group by codcredito, cuotanro, importe
Cuando se hace el group by por varios campos que no hagan referencia a un grupo, en tu caso por ejmplo id, te devuelve como resultado casi los mismos registros, por lo que la consulta que pones devolvería todos los registros donde pagada sea igual a false.

La consulta que yo haría para obtener los primeros registros de un grupo y que codcredito sea el menor, sería esta:

Código SQL [-]
Select *
From cuotas c1 Inner Join (Select Min(id) as id, codcredito From cuotas 
                                    Where pagada=false Group By codcredito) as c2
        on (c1.id=c2.id)

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 25-03-2010
smessina smessina is offline
Miembro
 
Registrado: ene 2006
Posts: 51
Poder: 19
smessina Va por buen camino
Gracias

Gracias con eso lo solucione..
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como seleccionar campos de una tabla sin saber cuantos van a seleccionar david duarte SQL 7 05-04-2010 21:15:43
... a cabo primero!!! ... Jure Humor 0 15-11-2007 22:33:28
Seleccionar impresora predeterminada en cada cliente david duarte Impresión 6 26-04-2006 16:04:24
Cual leer Primero cmgenny Firebird e Interbase 7 13-11-2004 22:21:09
Como imprimir totales de un grupo en el encabezado del grupo y no en el pie de grupo HombreSigma Impresión 1 07-10-2003 08:29:25


La franja horaria es GMT +2. Ahora son las 17:26:33.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi