Fórum Primeira e Ultima Data de Pedido do Cliente #485152
10/07/2014
0
Exemplo: cliente teve o prim pedido em janeiro e o ultimo em fevereiro 2014..nao serve.
cliente teve o prim. pedido em junho e o ultimo em junho....este que preciso.
SELECT count(DISTINCT(CLIENTE)) AS TTCLIENTES,min(dtpedido) as menor,max(dtpedido) as maior FROM PEDIDOS
WHERE CANCELADO='N'
AND VENDEDOR = :XVEND
AND EXTRACT(YEAR FROM menor) =:XANO
AND EXTRACT(YEAR FROM menor) =:XANO
AND EXTRACT(MONTH FROM maior) =:XMES
AND EXTRACT(MONTH FROM maior) =:XMES
A Ideia e´ ter a QUANTIDADE DE CLIENTES desse vendedor que compraram pela primeira vez no mes.
Só que dessa forma da erro..coluna menor nao existe..
Grato pela ajuda
Tomas Raponi
Curtir tópico
+ 0Posts
11/07/2014
Thiago Irrazabal
Aqui vai ele adaptado já:
SELECT TTCLIENTES, MENOR, MAIOR, ANO, MES FROM (SELECT DISTINCT(COUNT(CLIENTE)) AS TTCLIENTES, MIN(DTPEDIDO) AS MENOR, MAX(DTPEDIDO) AS MAIOR, EXTRACT(YEAR FROM DTPEDIDO) AS ANO, EXTRACT(MONTH FROM DTPEDIDO) AS MES FROM PEDIDOS GROUP BY 4,5) WHERE CANCELADO = 'N' AND VENDEDOR = :XVEND AND EXTRACT(YEAR FROM MENOR) = :XANO AND EXTRACT(YEAR FROM MAIOR) = :XANO AND EXTRACT(MONTH FROM MENOR) = :XMES AND EXTRACT(MONTH FROM MAIOR) = :XMES
Att,
Thiago Irrazabal de Oliveira.
Gostei + 0
11/07/2014
Tomas Raponi
FROM (SELECT DISTINCT(COUNT(CLIENTE)) AS TTCLIENTES,
MIN(DTPEDIDO) AS MENOR, MAX(DTPEDIDO) AS MAIOR,
EXTRACT(YEAR FROM DTPEDIDO) AS ANO, EXTRACT(MONTH FROM DTPEDIDO) AS MES FROM PEDIDOS GROUP BY 4,5)
WHERE CANCELADO = 'N'
AND VENDEDOR = :XVEND
AND EXTRACT(YEAR FROM MENOR) = :XANO
AND EXTRACT(YEAR FROM MAIOR) = :XANO
AND EXTRACT(MONTH FROM MENOR) = :XMES
AND EXTRACT(MONTH FROM MAIOR) = :XMES
Thiago, gostei da ideia, so que da erro na linha 2.
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 2, char 7.
SELECT.
Tentei ver o que poderia ser, mas nao consegui (firebird 1.5, so para lembrar). Grato
Gostei + 0
11/07/2014
Thiago Irrazabal
Tenta assim:
SELECT TTCLIENTES, MENOR, MAIOR, ANO, MES FROM (SELECT DISTINCT(COUNT(CLIENTE)) AS TTCLIENTES, MIN(DTPEDIDO) AS MENOR, MAX(DTPEDIDO) AS MAIOR, EXTRACT(YEAR FROM DTPEDIDO) AS ANO, EXTRACT(MONTH FROM DTPEDIDO) AS MES FROM PEDIDOS WHERE CANCELADO = 'N' AND VENDEDOR = :XVEND GROUP BY 4,5) WHERE EXTRACT(YEAR FROM MENOR) = :XANO AND EXTRACT(YEAR FROM MAIOR) = :XANO AND EXTRACT(MONTH FROM MENOR) = :XMES AND EXTRACT(MONTH FROM MAIOR) = :XMES
Att,
Thiago Irrazabal de Oliveira.
Gostei + 0
12/07/2014
Tomas Raponi
E o erro coninua o mesmo..parece que nao esta aceitando o que vem depois do ano, mes FROM (Select...
Ja tentei de tudo.
Gostei + 0
12/07/2014
Thiago Irrazabal
Att,
Thiago Irrazabal de Oliveira
Gostei + 0
17/07/2014
Alex Lekao
somente a titulo de sugestao. rssr
nao daria certo utilizar o Between (acho que escrevi como escreve. kkkkk) e montar uma subselect para o primeiro e o ultimo(uma para cada um) usando top e top desc, se for necessario apresentar os dois?
No caso da diga do Thiago acredito que ajude tambem e muito.
talvez desenvolver algum tipo de procedure que saia montando tudo que vc precisa e agrupando e assim de o resultado esperado.
Espero ter ajudado.
Abraco.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)