Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-05-2004
Avatar de argami
argami argami is offline
Miembro
 
Registrado: jun 2003
Ubicación: Barcelona
Posts: 57
Poder: 21
argami Va por buen camino
Problema con un join

Estoy tratando de hacer una estadistica con un par de tablas

Código SQL [-]
select A.Descripcion, count(O.IdTrabajo) as Total, count(P.IdTrabajo) as Pend, count(Q.IdTrabajo) as Enfecha
from FGMDepar A
    Full Outer JOIN FGMTareas O on A.Departamento = O.Departamento
    Full Outer JOIN FGMTareas P on A.Departamento = P.Departamento and P.Fechaenvio is null
    Full Outer JOIN FGMTareas Q on A.Departamento = Q.Departamento and Q.Fecha = Q.Fechaenvio
group by A.Descripcion

Pero teniendo solo unos 200 registros el pend en uno de los departamentos me devuelve 5000 me imagino que de alguna manera esta llamando a la misma tabla unas cuantas veces y por eso devuelve esto sabria alguien como hacer que funcione

gracias
__________________
Gami

------------------------------------------------------------------
La necesidad no tolera tardanzas pero mas vale tarde que nunca

Última edición por argami fecha: 28-05-2004 a las 09:09:47.
Responder Con Cita
  #2  
Antiguo 27-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Que tipo de estadistica queres sacar?

De la forma que lo estas haciendo vas a obtener el mismo resultado en todos los count, pues todos se aplican sobre el mismo resultset....
__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 27-05-2004
Avatar de marto
marto marto is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona, Catalunya
Posts: 882
Poder: 21
marto Va por buen camino
Si haces FULL OUTER JOIN de todas las tablas, es normal que te devuelva más registros de los que filas tiene una de sus tablas....

De todas maneras, tiene razón jachguate, así a bote pronto la consulta no parece tener mucho sentido... ¿porqué no nos explicas qué se supone que tiene que devolver?
__________________
E pur si muove
Responder Con Cita
  #4  
Antiguo 28-05-2004
Avatar de argami
argami argami is offline
Miembro
 
Registrado: jun 2003
Ubicación: Barcelona
Posts: 57
Poder: 21
argami Va por buen camino
nesesito una linea de datos que me diga cuantos estan dentro de una fecha

Código SQL [-]
FechaEnvio = Fecha

cuantos no se han entregado

Código SQL [-]
FechaEnvio is null

Cuantos estan se entregaron fuera de la fecha

Código SQL [-]
FechaEnvio > Fecha

Todo esto lo deseo en un solo registro ya que lo quiero agrupar por departamentos que la descripcion esta en otra tabla es algo como:

Tareas ___________________ Departamento

Departamento ------------> Departamento
Fecha ____________________ Descripcion
FechaEnvio

y las estadisticas todas salen de tareas

gracias por contestar
__________________
Gami

------------------------------------------------------------------
La necesidad no tolera tardanzas pero mas vale tarde que nunca

Última edición por argami fecha: 28-05-2004 a las 09:09:24.
Responder Con Cita
  #5  
Antiguo 28-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Esto podes arreglarlo con subconsultas, pero no con un join, que es un producto cartesiano de las tablas.

La sentencia para dos conteos seria:
Código SQL [-]
Select a.descripcion, 
         (select count(*) 
            from fgmtareas o 
           where o.departamento = a.departamento) Total_tareas, 
         (select count(*) 
            from fgmtareas p
           where p.departamento = a.departamento
             and p.fechaenvio is null) Total_tareas_pendientes
  from fgmDepar a;

También verás que se ha resaltado la sintaxis de SQL en mi mensaje. Esto es debido a que uso la etiqueta [ sql ] en lugar de la etiqueta [ code ], que es un invento de Cadetill que hace mucho mas legible el código.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #6  
Antiguo 28-05-2004
Avatar de argami
argami argami is offline
Miembro
 
Registrado: jun 2003
Ubicación: Barcelona
Posts: 57
Poder: 21
argami Va por buen camino
va de lujo te lo agradezco la verdad desde que acabe hace 2 años el CFGS no he tocado sql y no me acordaba de las subselects te lo agradezco igualmente en mis pocos conocimientos si puedo ayudar en algo ya sabeis a donde dirigiros
__________________
Gami

------------------------------------------------------------------
La necesidad no tolera tardanzas pero mas vale tarde que nunca
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


La franja horaria es GMT +2. Ahora son las 09:25:55.


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