and ou or não consigo

13/12/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.


Luciano.sul

Respostas

14/12/2005

Bruno Belchior

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))



Responder Citar

14/12/2005

Luciano.sul

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


Responder Citar

14/12/2005

Okama

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 )



Responder Citar

14/12/2005

Luciano.sul

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


Responder Citar