Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Ayuda comparacion campos AdoQuery (https://www.clubdelphi.com/foros/showthread.php?t=56714)

Jaros 25-05-2008 20:17:34

Ayuda comparacion campos AdoQuery
 
Hola, tengo un pequeño problema con una consulta, haber si se explicarme.
En la tabla Historico(Access) con AdoQuery tengo un campo(Tipo) en el que escribo 'UU' cuando el cliente ejecuta y 'UL' cuando el cliente acaba.
Bueno la consulta es si puedo recuperar los registros que contengan 'UU' y no exista todavia el 'UL' con IdCliente Tambien.
Gracias de antemano.

marcoszorrilla 25-05-2008 21:42:39

Si entiendo bien lo que pides:
Código SQL [-]
Select Id, Tipo
From Historico
Where historico.tipo = 'UU';


Un Saludo.

Jaros 25-05-2008 21:50:10

No gracias por responder lo que tupones lo tengo claro.
El problema es que en la tabla hay escrito ya;
IdCliente Tipo
1235 UU
1235 UL

1236 UU

etc.etc
los que quiero recuperar son los que estan IdCliente=1236 y Tipo= UU en el que todavia no se ha escrito Tipo=UL osea IdCliente=1236 Tipo=UL
Los registros que estan en UU pero no estan UL
Espero que asi lo entiendas sino lo intentare explicarlo de otra manera, gracias

Neftali [Germán.Estévez] 26-05-2008 09:38:45

Suponiendo que los rellenes en orden, esto podría funcionar:

Código SQL [-]
select * from (SELECT historico.idcliente, Count(historico.tipo) as ctipo
FROM historico
GROUP BY historico.idcliente) where ctipo=1

Y esto supongo que también

Código SQL [-]
select * FROM historico as hist2 where hist2.idcliente not in(
SELECT idcliente FROM historico where tipo='ul')


De todas formas decir que ambas consulta no son muy eficientes. Creo que no es problema de la consulta, sino un problema de diseño.
No se si estás a tiempo de corregirlo, pero lo lógico sería no insertar un segundo registro con el mismo idCliente, sino actualizar el existente con el nuevo tipo.

Jaros 27-05-2008 19:54:58

Muchas gracias Neftali,
Si debo de insertar los dos registros para saber exacto cuando ejecuto y cuando finalizo,
el problema de querer recuperar el registro 'UU' y que estubiera el 'UL' es por que asi se los que todavia no han finalizado y el otro registro me hace falta para saber cuando ejecuta y cuando finalizo.

De todas maneras ya lo he resuelto es poco cutre pero funciona muy bien.
Hago una consulta donde saco todos los 'UU y 'UL' del cliente despues clono la consulta(tabla) y las comparo las dos sacando todos los 'UU' que no tienen 'UL' y "vuala"
De todas maneras gracias por contestar a los dos y si a alguien le hace falta el codigo por que tiene un problema similar lo posteo y ok.


La franja horaria es GMT +2. Ahora son las 00:03:45.

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