Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-08-2010
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Question Ayuda con consulta.

Trabajo con Firebird 2.1, en particular la consulta se hace con dos tablas:
1. RELTECPAS, con dos campos, TECNICO que es un codigo de dos digitos con el que se identifica y PASO que es el tipo de trabajo que el realiza y es de dos digitos, el TECNICO puede realizar varios tipos de trabajos.
2. GARANTIAS, con cuatro campos TECNICO, PASO,UNDS que significa cuantas unidades hace del trabajo y FECHA en que se ingreso el trabajo.

Bueno necesito saber cuantas UNDS ha hecho un TECNICO dado un PASO y una FECHA, si el TECNICO no ha hecho ningun trabajo aun en UNDS de cero.
Estando la tabla GARANTIAS vacia no me da lo que deseo, si ingreso un registro me muestra solo el registro y necesito que me muestre los demas registro para mi programa ya que se le asignara a quien tenga menos unidades y si hay tecnicos con el mismo numero de unidades se le asignara en roden del codigo, mi consulta es la siguiente:
Código SQL [-]
select a.TECNICO,coalesce(sum(b.UNDS),0)
from RELTECPAS a
left join GARANTIAS b on a.TECNICO = b.TECNI
where a.PASO = '04' and b.PASO = a.PASO and b.FASIG >= '19.07.2010'
group by a.TECNICO
Que tendre malo??
Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 04-08-2010
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

Pero cual es el error que te sale al ejecutar la SQL, eso podria dar pistas de como resolver la situacion!

Saludos
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #3  
Antiguo 04-08-2010
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Que pena, no da error, pero necesito que me muestre tambien los otros tecnico que no tengan unidades con valor cero, asi ordenare la consulta teniendo en cuenta las unidades y el tecnico.
Responder Con Cita
  #4  
Antiguo 05-08-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
en lugar de un "left join" necesitas un "left outer join" y vas a requerir de la funcion COALESCE para poner ceros a los nulos.
__________________

Responder Con Cita
  #5  
Antiguo 05-08-2010
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Gracias por responder....

Bueno te cuento que realice lo sugerido pero no dio, en la tabla GARANTIAS ingrese un registro, la tabla TECNICOS tiene 35 resgitros, he realizado lo que me indicaron y no da, quizas no comprendan uds. lo que necesito, necesito que sume las unidades que tienen los tecnicos en la tabla GARANTIAS dado un PASO y una FECHA, si no posee unidades me muestre de todos modos el codigo del tecnico pero con valor cero en la suma de unidades, pero esto no es asi, me muestra solo el registro y no muestra a los demas tecnicos.
Mi consulta SQL es la siguiente:
Código SQL [-]
select a.TECNICO,coalesce(sum(b.UNDS),0)
from RELTECPAS a
right outer join GARANTIAS b on a.TECNICO = b.TECNI
where a.PASO = '04' and b.PASO = a.PASO and b.FASIG >= '19.07.2010'
group by a.TECNICO
Responder Con Cita
  #6  
Antiguo 05-08-2010
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
El primer detalle que veo, es que tienes en la cláusula "where", detalles que involucran a la tabla de garantías. Lo que sucede en ese caso es que al hacer el "join" te envía los datos que encuentra, pero despúes de eso, filtra lo que concuerde con "b.tecnico = a.tecnico", eliminando así todos los que no concuerden con esa cláusula y por eso solo te trae un registro. Es mejor que muevas del where todo lo que involucre a la tabla garantías, a la parte del join.
Código SQL [-]
select a.TECNICO,coalesce(sum(b.UNDS),0)
from RELTECPAS a
left outer join GARANTIAS b on a.TECNICO = b.TECNI and a.PASO = b.PASO and b.FASIG >= '19.07.2010'
where a.PASO = '04'
group by a.TECNICO

¿eso no funciona?
__________________


Última edición por ContraVeneno fecha: 05-08-2010 a las 16:38:35.
Responder Con Cita
  #7  
Antiguo 05-08-2010
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Muchas gracias contraveneno, esa es la solucion, no sabia que en el join se podia meter eso.

Gracias de nuevo
Responder Con Cita
  #8  
Antiguo 05-08-2010
desarrollo desarrollo is offline
Registrado
 
Registrado: abr 2007
Posts: 6
Poder: 0
desarrollo Va por buen camino
Question Modelacion En Uml

Hola Como Estan. Tengo Unprobelma Un Ing De La Compañai Se Fue Y Nos Dejo Un Software Que Se Desarrollo En Delohi Hace Algun Tiempo En El Disco Duro. Pero Queremso Saber Si El Modelado Del Software Lo Hizo En Uml O En Que Le Gnuaje.. Hay Forma De Saver Con Que Extencion Se Guardan Los Archivos De Modelado En Uml O Como Dientifico En Que Progama S Modelo . Tengo Tdos Los Archivos En El Pc Pero No Se Que Buscar. Les Agradezco Cualqueir Respuesta. Mi Correo Es desarrollodelphi2000@yahoo.com Urgentisisisimooo Me Salvanrian El Trbajo.. Mi Empleo. Jejeje
Responder Con Cita
  #9  
Antiguo 05-08-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Hola amigo(a) "desarrollo" Bienvenido(a) a nuestro club.
Primeramente sería muy bueno que pudieras leer nuestra Guía de estilo para conocer ciertas reglas y normas del foro, para que nos llevemos bien y nos entendamos., Por cierto una de esas normas dice que debes abrir o crear un nuevo tema(hilo) ya que tu problema es totalmente diferente al que se está hablando en éste Hilo,.
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #10  
Antiguo 05-08-2010
desarrollo desarrollo is offline
Registrado
 
Registrado: abr 2007
Posts: 6
Poder: 0
desarrollo Va por buen camino
como inicio nuevo hilo

perdon por vovler a escribir en un tema que no es el mio, pero no logro saber como inicio un neuvo tema.. me colabroas con eso pro favor. gracias
Responder Con Cita
  #11  
Antiguo 05-08-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow Por supuesto

Para crear un nuevo tema o hilo , primeramente debes elegir el foro adecuado, existen diferente Foros donde puedes Postear y/o escribir tus temas, por ejemplo si tu duda se trata sobre Impresion o Impresoras puedes postear esa duda en el foro de Impresion, si se trata de Programacion orientada a Objeto (OOP) puedes hacerlo en el foro OOP, y así sucesivamente.
Para ver los diferente foros pulsa Aqui y podrás verlos en la parte Izquierda, selecciona el foro mas adecuado a tu tema y luego te entras en él, estando dentro ,si te fijas en la parte superior izquierda o inferior izquierdo ,existe un boton que dice: "Nuevo hilo", pulsas en él, y se te abrirá un editor donde podrás colocar un título y luego podrás detallar tu problema.,luego cuando termines, pulsas en el Boton inferior que dice "Enviar nuevo tema" y listo.
En tu caso creo que tu tema iría en el foro de varios.
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
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
Ayuda con una consulta plz ! K4RL0S SQL 9 17-11-2005 17:33:09
Ayuda con una consulta SQL agova SQL 13 29-08-2005 17:06:15
Ayuda con consulta raco Varios 4 08-04-2005 21:56:43
Ayuda con consulta SQL tgsistemas SQL 9 18-02-2004 16:14:07
Ayuda con Consulta mosorio SQL 3 23-07-2003 08:28:58


La franja horaria es GMT +2. Ahora son las 09:26:32.


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