i

Esse artigo faz parte da revista SQL Magazine edição 46. Clique aqui para ler todos os artigos desta edição

img

Clique aqui para ler esse artigo em PDF.imagem_pdf.jpg

 

Banco de Dados

Desafio da SQL Magazine

Resposta do desafio

Antes de tentar resolver um desafio é preciso entender o problema, em nosso caso o gerente de uma loja quer saber não só o total de vendas por vendedor, mas também em que ordem as vendas aconteceram.

Portanto, a idéia é seguir a seqüência de vendas através do id_vendas e verificar quem é o próximo vendedor, quando houver quebra de vendedor, fazemos a soma e mostramos as seqüências inicial e final.

Vejamos esta solução passo-a-passo.

 

1)      O primeiro passo é descobrir a seqüência de vendas e vendedores. Para isso, utilizei a função analítica lag( ) ordenada pelo id_venda. Veja o resultado na Listagem 1.

 

SQL>SELECT LAG(VENDEDOR) OVER (ORDER BY ID_VENDAS) LAG_VEND, V.*

  2    FROM VENDAS V

  3   /

 

LAG_VEND    ID_VENDAS VENDEDOR   VENDAS_VALOR

---------- ---------- ---------- ------------

                    1 MARIA                .4

MARIA               2 MARIA                .8

MARIA               3 MARIA               1.2

MARIA               4 MARIA               1.6

MARIA               5 MARIA                 2

MARIA               6 MARIA               ...

Quer ler esse conteúdo completo? Tenha acesso completo