Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-05-2003
Avatar de Manuel
Manuel Manuel is offline
Miembro
 
Registrado: may 2003
Ubicación: San Pedro de la Paz/Chile
Posts: 324
Poder: 21
Manuel Va por buen camino
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.
__________________
Manuel Muñoz L. Trabajando con delphi 7.0 , migrando sistema a Delphi XE8, matando BDE y pasando FIREDAC.
Responder Con Cita
  #2  
Antiguo 05-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
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
Responder Con Cita
  #3  
Antiguo 07-05-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
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
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #4  
Antiguo 07-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 24
__cadetill Va por buen camino
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

Lo de la relacion, pues que decida Manuel por que campos se unen las dos tablas porque yo sigo sin verlo claro
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
alguien m podría echar una mano para el moviemiento de objetos en delphi Moralito OOP 1 20-12-2005 01:17:58
Google da una mano a OpenOffice.org marcoszorrilla Noticias 1 01-11-2005 14:31:03
rave report denme la mano aqui porfavor Ryu Impresión 0 05-09-2005 17:30:59
me dan una mano con esta duda.... ronimaxh Firebird e Interbase 4 17-06-2004 00:31:45
meterle mano a un string acrophet Varios 6 06-11-2003 11:04:07


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


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