Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Davis

SELECT entre duas datas...

Recommended Posts

Opa!

 

O problema é o seguinte: Tenho uma tabela onde eu deveria selecionar todas as pessoas que pagaram a loja pelo menos uma vez na vida mas não o fizeram nos últimos 2 meses (0-2 meses). Eu fiz o código abaixo mas só funciona durante o ano de 2007 (todos os meses de 2006 mostram todos os registros).

 

Alguém tem uma idéia? (Já tentei o Between mas não tem funcionado direito - mas posso ter feito algo errado).

 

SELECT DISTINCT H.id_customer		FROM tbHistory as H		INNER JOIN tbCustomers as C ON H.id_customer = C.id		WHERE			(H.amount_pay is not null) AND (H.del = '0' OR H.del is null) AND (H.done is null OR H.done = '1') AND 			(C.del = '0') AND			(C.type_member = 7) AND			(H.type_event = 44) AND 			(H.id_customer NOT IN			(				SELECT DISTINCT H.id_customer				FROM tbHistory as H				INNER JOIN tbCustomers as C ON H.id_customer = C.id				WHERE					(H.amount_pay is not null) AND (H.del = '0' OR H.del is null) AND (H.done is null OR H.done = '1') AND 					(C.del = '0') AND					(C.type_member = 7) AND					(H.type_event = 44) AND					(MONTH(H.date_pay) !< MONTH(@date) - 2) AND (YEAR(H.date_pay)) = YEAR(@date)			))

 

Acho que deu pra entender, né? :)

 

Valeu! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que o código abaixo não resolve o seu problema ?

 

SELECT DISTINCT H.id_customerFROM tbHistory as HINNER JOIN tbCustomers as C ON H.id_customer = C.idWHERE (H.amount_pay is not null) AND (H.del = '0' OR H.del is null) AND (H.done is null OR H.done = '1') AND      (C.del = '0') AND      (C.type_member = 7) AND      (H.type_event = 44) AND      datediff(dd,H.amount_pay,getdate()) > 60

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.