FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
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: Que tendre malo?? Gracias de antemano. |
#2
|
||||
|
||||
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!! |
#3
|
|||
|
|||
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.
|
#4
|
||||
|
||||
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.
__________________
|
#5
|
|||
|
|||
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:
|
#6
|
||||
|
||||
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.
¿eso no funciona?
__________________
Última edición por ContraVeneno fecha: 05-08-2010 a las 16:38:35. |
|
|
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 |
|