Ver Mensaje Individual
  #17  
Antiguo 14-03-2011
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Reputación: 25
Caral Va por buen camino
Hola
Lo que se pretende es, a mi criterio IMPOSIBLE, por que?.
Si tenemos tres datos, los filtramos y dos de los tres campos cumplen el criterio se mostrara los tres, es logico, las bases de datos son secuenciales, muestran la totalidad de la linea.
Si hicieramos una sentencia sql asi:
Código SQL [-]
SELECT Banco.[idBanc], Banco.[idEmpresa], Banco.Referencia
FROM Banco
WHERE (((Banco.[idBanc])=6) AND ((Banco.[idEmpresa])=34) AND ((Banco.Referencia)="0001/23-456 A")) OR (((Banco.Referencia)="1/23-456 A"));
Nos mostraria los tres registros, incluyendo el que supuestamente no deberia:

idBanc - Referencia - idEmpresa
6 - 0001/23-456 A - 34
5 - 1/23-456 A - 34
6 - 1/23-456 A - 34

Y eso que se determina con el Where que solo los que coincidan con referencia, como es logico, la referencia del 5 tambien es la misma y la mostrara.
Sea con un filtro o con una sentencia se mostraran los tres campos, salvo que se determine UNA de las condiciones, por ende solo mostrara la diferente, en este caso:

Código Delphi [-]
Filtro := 'idBanc = 34 and  idempresa = 6 and  Referencia Like '+QuotedStr('1/23-456 A')+' OR Referencia Like '+QuotedStr('0001/23-456 A')+'';

Y mostrara la diferente:

dBanc - Referencia - idEmpresa
6 - 0001/23-456 A - 34

Por eso digo: no entiendo esto.
Ademas sigo sin enterder cual es el problema de modificar un adoquery en una operacion, si regresara a su estado normal posteriormente, aunque en este caso no funcionara aun con un DISTINCT.
No se, digo...
Saludos
__________________
Siempre Novato

Última edición por Caral fecha: 14-03-2011 a las 01:16:16.
Responder Con Cita