Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   quiero Agrupar según condición FastReport (https://www.clubdelphi.com/foros/showthread.php?t=79512)

vicentnew 12-07-2012 21:51:12

quiero Agrupar según condición FastReport
 
Estimados, tengo dos tablas relacionadas, en una los nombres de los alumnos (tabla1) y en la otra las materias que adeudan (tabla2), a su ves en fast report me arme un formulario que me muestre todos los alumnos y la cantidad de materia que adeuda cada uno…. El problema es que no se como mostrar solo aquellos alumnos que adeuden mas de dos materias por ejemplo, y no se si ese problema lo tengo resolver dentro del fastreport o en el sql del query que tengo en mi form…les paso el ejemplo, trabajo con delphi7 y sqlite3 con zconection. Desde ya gracias

Tabla 1
Id Id_alumno

1 1
2 2
3 3
4 4


Tabla2
Id Id_alumno Materia

1 2 Matemática
2 2 Lengua
3 1 Recreo

kapcomx 12-07-2012 22:34:37

query
 
amigo vicentnew, lo que te recomiendo es que hagas desde tu query el filtro para que te devuelva los que deben mas de 2 materias y luego ese query lo ligues al reporte

ya en le reporte hasta podrias hacer un maestro detalle alumno-materias
saludos...:cool:

vicentnew 13-07-2012 03:05:41

Hola amigo gracias, tengo pensado algo así, (Digamos que es lo que necesito):

Select * From "tabla2" GROUP BY "id_alumno" where "materia" HAVING Count(*)>2

pero es mas que evidente que estoy colocando mal el código sql, me darían una mano?

ozsWizzard 13-07-2012 08:24:01

Creo que lo que quieres hacer es algo así como esto:

Código SQL [-]
Select "id_alumno", Count(*) as Materias 
From "tabla2" 
Group By "id_alumno" 
Having Count(*) > 2

Piense que cuando se usa una cláusula "Group by", en la cláusula "Select" siempre tienen que estar los campos por los que agrupas (y viceversa).

EL "Having" es como una cláusula "Where" pero con funciones de grupo (como es el Count).

Un saludo

vicentnew 13-07-2012 15:10:16

Gracias amigos me estoy acercando creo a lo que quiero, solo que aun no puedo resolver el problema, ya que en mi reporte necesito ver de esta manera:

id_Alumno: 758
Materias que adeuda:
Nombre de materia 1
Nombre de materia 2
Nombre de materia 3

y asi.........

pero haciendo de la forma anterior solo veo de esta manera


id_Alumno: 758
Materias que adeuda:
3

Por el momento pude lograr ver todos los alumnos con las materias adeudadas, lo que no puedo hacer es filtrar solo aquellos que adeudan mas de dos materias con la lista correspondiente de materias...

vicentnew 18-07-2012 01:41:07

Listo!!
 
Amigos, Gracias por la ayuda, al final pude solucionar el problema, siempre estuvo en mis narices, solo tenia que agregar un detaildata dentro del fastreport y apuntar allí las materias relacionadas al alumno y listo. muchas gracias:p


La franja horaria es GMT +2. Ahora son las 23:29:10.

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