Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ayuda con consulta SQL (https://www.clubdelphi.com/foros/showthread.php?t=7483)

tgsistemas 17-02-2004 13:38:58

Ayuda con consulta SQL
 
Saludos a tod@s :

Solicito ayuda con una consulta de SQL ya que soy novato con SQL Server. :(
Partiendo de dos tablas (Trabajadores y Servicios) quiero hacer una consulta que muestre los trabajadores activos que no están incluidos en ningún servicio.
El query que he probado es este :
Cita:

SELECT DISTINCT T.CDGO, T.NMBRECMPLTO
FROM TRBJDRES T, SERVICIOS S
WHERE (T.CDGO <> S.CDGOTOP AND T.ACTIVO = -1)
ORDER BY T.CDGO
Pero no funciona correctamente ya que me muestra todos los trabajadores (incluso los que ya estan en algún servicio).

Espero que alguien pueda ayudarme.

Saludos a tod@s.

delphi.com.ar 17-02-2004 14:07:33

No funciona porque estas relacionando las tablas...
Código:

SELECT DISTINCT T.CDGO, T.NMBRECMPLTO
FROM TRBJDRES T
WHERE T.ACTIVO = -1
AND NOT EXISTS (SELECT 1 FROM SERVICIOS S WHERE T.CDGO = S.CDGOTOP)
ORDER BY T.CDGO

Saludos!

tgsistemas 17-02-2004 16:48:58

Gracias !!
 
Gracias delphi.com.ar !!!!

Es exactamente lo que necesitaba...
lo he probado y funciona perfectamente.

Gracias y saludos.

P.D.: Por mi parte ya se puede cerrar este hilo, es necesario hacer algo para cerrarlo o se deja tal cual?

tgsistemas 18-02-2004 15:22:53

Hilo no cerrado
 
Hola delphi.com.ar :

El script que me facilitastes funciona perfectamente :

Cita:

Empezado por delphi.com.ar
No funciona porque estas relacionando las tablas...
Código:

SELECT DISTINCT T.CDGO, T.NMBRECMPLTO
FROM TRBJDRES T
WHERE T.ACTIVO = -1
AND NOT EXISTS (SELECT 1 FROM SERVICIOS S WHERE T.CDGO = S.CDGOTOP)
ORDER BY T.CDGO

Saludos!

pero ahora me piden exactamente la misma consulta pero agrupada por otro campo (S.NMROORDEN), he intentado añadirlo a la consulta que me facilitastes, pero no funciona.

Agradeceria me indicaras alguna pista de como hacerlo.

Saludos.

delphi.com.ar 18-02-2004 15:29:06

No entiendo que quieres decir con "agrupada por otro campo (S.NMROORDEN)"

tgsistemas 18-02-2004 15:34:30

Me explico mejor...

A la consulta original :

SELECT DISTINCT T.CDGO, T.NMBRECMPLTO
FROM TRBJDRES T
WHERE T.ACTIVO = -1
AND NOT EXISTS (SELECT 1 FROM SERVICIOS S WHERE T.CDGO = S.CDGOTOP)
ORDER BY T.CDGO

tengo que añadir un campo (NMROORDEN) que pertenece a la tabla Servicios (S) y mostrar los resultados de la consulta agrupados por ese campo "Group by S.NMROORDEN".

Gracias por tu ayuda...

roman 18-02-2004 15:40:35

tgsistemas
Mencionas que eres novato en sql. Quizá te interese leerte algún tutorial básico como por ejemplo este. No hay nada como tener una idea general para no atorarnos tanto.

// Saludos

delphi.com.ar 18-02-2004 15:55:55

Incisto con lo que te ha dicho Román, te recomiendo aprender SQL, al menos las nociones bácicas. Es muy fácil.
Por otro lado, quieres mostrar un campo de la tabla SERVICIOS cuando la consulta son todos aquellos trabajadores que no esten en esta tabla... ¡No es lógico!

tgsistemas 18-02-2004 16:10:23

perdón !!!!! :o

me he equivocado de query :(

La consulta que me facilitastes la utilizo en otro query para mostrar todos los servicios que tiene asignado el usuario conectado al programa y es en esta consulta donde debo agrupar los datos por el NMROORDEN, diferentes servicios pueden tener el mismo NMROORDEN y se trata de que el usuario los vea agrupados.

Independientemente de eso voy a seguir el consejo de roman y buscar algún manual de SQL, que libro me aconsejais al respecto?.

Pido disculpas por el error !!!

Saludos y gracias a roman y delphi.com.ar !!

roman 18-02-2004 16:14:07

Cita:

Empezado por tgsistemas
Independientemente de eso voy a seguir el consejo de roman y buscar algún manual de SQL, que libro me aconsejais al respecto?.

Insisto en el enlace que te puse o algún otro que encuentres con Google. No busques un libro, no ahora. En mi opinión lo mejor es algo sencillo que en una tarde nos de un panorama general de cómo funciona.

// Saludos


La franja horaria es GMT +2. Ahora son las 05:03:13.

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