Array
(
)

and ou or não consigo

Luciano.sul
   - 13 dez 2005

Duvida...
Tenho uma tabela de vendas e nela pode ser inserido até três vendedores.
Quando faço uma consulta eu informo a data inicial e final da venda. Exemplo : Select ID,DATA_VENDA,ID_VENDEDOR_1,ID_VENDEDOR_2,ID_VENDEDOR_3 from Vendas Where (DATA_VENDA >= ´01/12/2005´) AND (DATA_VENDA <= ´31/12/2005´).
Daí vou ter todas as vendas no período de 01/12/2005 a 31/12/2005.
Se eu quiser saber neste mesmo período o que foi vendido para o vendedor com o CODIGO 1. Vou fazer como? Sendo que o vendedor com o CODIGO 1 pode ter sido inserido no campo ID_VENDEDOR_1 e em outra venda pode ter sido inserido no campo ID_VENDEDOR_2 ou ainda em outra venda ele pode ter sido inserido no campo ID_VENDEDOR_3.

Obs. Se eu colocar Exemplo : Select ID,DATA_VENDA,ID_VENDEDOR_1,ID_VENDEDOR_2,ID_VENDEDOR_3 from Vendas Where (DATA_VENDA >= ´01/12/2005´) AND (DATA_VENDA <= ´31/12/2005´) AND (ID_VENDEDOR_1 = ) OR (ID_VENDEDOR_2 = 1) OR (ID_VENDEDOR_3 = 1). O sistema ira desconsiderar a data que eu informei na consulta.


Eu uso delphi 7 + FireBird + DbExpress

Desde já muito obrigado.


Bruno Belchior
   - 14 dez 2005

#Código

select ID, DATA_VENDA, ID_VENDEDOR_1, ID_VENDEDOR_2, ID_VENDEDOR_3 from Vendas where DATA_VENDA between ´01/12/2005´ and ´31/12/2005 and ((ID_VENDEDOR_1 = 1) or (ID_VENDEDOR_2 = 1) or (ID_VENDEDOR_3 = 1))



Luciano.sul
   - 14 dez 2005

obrigado pela ajuda vou tentar e te dou o retorno...


Okama
   - 14 dez 2005

#Código

Select 
Campo1, Campo2
from
Tabela
where
( Data_Venda between ´mm/dd/yyyy´ and ´mm/dd/yyyy´ )
and
(Vendedor1 = Codigo or Vendedor2 = Codigo or Vendedor3 = Codigo )



Luciano.sul
   - 14 dez 2005

Ok, pessoal funcionou.
Muito obrigado pela ajuda...