Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Una mano por favor (https://www.clubdelphi.com/foros/showthread.php?t=91)

Manuel 05-05-2003 21:15:57

Una mano por favor
 
Hola amigos del Foro:

Tengo lo siguiente tr5abajo en delphi 5.0 con interbase 5.5, necesito hacer una query, que me indique los alumnos que tiene 5 o más atrasos activos. las tablas son las siguientes:

Alumnos
------------
Campo Tipo

Rut float (Campo Clave)
Nombrte Char(50)
.
.
.


Atrasos
----------

Campo Tipo

Rut Float
Fecha Date
Activo Smallint


Un alumnos puede tener n atrasos el campo Activo = 1 me indica que esta vigente el registro. como podría hacerlo?

gracias amigos del foro.

__cadetill 05-05-2003 21:22:50

si no me he equivocado, el SQL siguiente te muestra los alumnos que tienen atrasos y cuantos tienen

Código:

select a.rut, a.nombre, count(*)
from alumnos a join atrasos s on (s.CampoTipo = a.CampoTipo and
                                  s.activo = 1)
group by a.rut, a.nombre


delphi.com.ar 07-05-2003 02:28:26

Me parece que te equivocaste, porque precisamente falta que filtres los que tienen mas de 5 atrasos y me parece que te equivocaste en la relación, no te culpo porque la verdad que el enunciado no está muy claro.

Código:

SELECT ALUMNOS.RUT, NOMBRE, COUNT(*) ATRASOS
FROM ALUMNOS, ATRASOS
WHERE ALUMNOS.RUT = ATRASOS.RUT
AND ACTIVO = 1
GROUP BY ALUMNOS.RUT, NOMBRE
HAVING COUNT(*) >= 5

ó

Código:

SELECT ALUMNOS.RUT, NOMBRE, COUNT(*) ATRASOS
FROM ALUMNOS JOIN ATRASOS ON (ALUMNOS.RUT = ATRASOS.RUT
)
WHERE ACTIVO = 1
GROUP BY ALUMNOS.RUT, NOMBRE
HAVING COUNT(*) >= 5

Vale aclarar que desconozco el ANSI de Interbase

__cadetill 07-05-2003 09:38:44

Cita:

Posteado originalmente por delphi.com.ar
Me parece que te equivocaste, porque precisamente falta que filtres los que tienen mas de 5 atrasos y me parece que te equivocaste en la relación
Lo del Having es cierto, no me habia fijado que solo pedia >= 5 :o

Lo de la relacion, pues que decida Manuel por que campos se unen las dos tablas porque yo sigo sin verlo claro :p


La franja horaria es GMT +2. Ahora son las 21:30:09.

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