top of page

SAP Business One - criando consulta dinâmica parte 4

Foto do escritor: expertb1expertb1

Uma forma de vender mais para um cliente é conhecer o que ele compra e o que ele ainda não comprou ou que está a muito tempo sem comprar. Não existe uma fórmula pronta, cada tipo de negócio tem uma característica. Entretanto, não custa pensar em formas de transformar uma oportunidade em novos negócios.


Pensando nisto, criei uma consulta associada ao código do cliente no momento de fazer uma cotação de vendas. No momento em que escolho o cliente conseguirei saber rapidamente o que o cliente mais compra, qual item ele mais gasta, itens que já comprou mas que estão sem compra a muito tempo....e também os itens que nunca comprou.


CUIDADO: esta query é apenas um exemplo. Colocamos um filtro de período (de preenchimento opcional) como demonstração, mas você poderá criar outros filtros. O tempo de resposta da consulta pode variar conforme o tamanho de seu banco de dados.


Primeiro passo é criar a consulta no gerente de consultas (segue o txt da mesma).

/*select t0.docdate from oinv t0 where t0.docdate>='[%0]'*/

/*select t0.docdate from oinv t0 where t0.docdate<='[%1]'*/



Select

a.ItemCode,

a.ItemName,

b.ItmsGrpNam as 'Familia',

vendas.DataVenda as 'Ultima Compra',

vendas.quantidade,

vendas.total,

dev.quantidade as 'Quantidade Devolvida',

dev.total as 'Total $ Devolucoes',

vendas.CardCode


from

oitm a

inner join oitb b on a.itmsgrpcod=b.itmsgrpcod

left outer join

/*vendas*/

(select

sum(x1.quantity) as quantidade,

sum(x1.linetotal) as total,

x1.itemcode as ItemCode,

max(x2.docdate) as DataVenda,

x2.CardCode as CardCode


from

OINV x2

inner join INV1 x1 on x1.Docentry=x2.Docentry


where

Canceled='N' and

(x2.DocDate>='[%0]' or ''='[%0]') and

(x2.DocDate<='[%1]' or ''='[%1]') and

(x2.cardcode=$[OQUT.CardCode])

group by x1.ItemCode, x2.CardCode

) vendas

on vendas.ItemCode=a.ItemCode


left outer join

/*devolucoes*/

(select

sum(x1.quantity) as quantidade,

sum(x1.linetotal) as total,

x1.itemcode as ItemCode,

max(x2.docdate) as DataVenda,

x2.CardCode as CardCode


from

ORIN x2

inner join RIN1 x1 on x1.Docentry=x2.Docentry


where

Canceled='N' and

(x2.DocDate>='[%0]' or ''='[%0]') and

(x2.DocDate<='[%1]' or ''='[%1]') and

(x2.cardcode=$[OQUT.CardCode])

group by x1.ItemCode, x2.CardCode

) dev

on dev.ItemCode=a.ItemCode


left outer join

ocrd c on c.CardCode=vendas.CardCode


where

a.SellItem='Y'



Segundo passo: associar a consulta gravada ao campo Numero de Referencia do Cliente (pode ser qualquer campo da tela)




Após escolher o cliente e clicar na LUPA da consulta formatada, veja o resultado (não preencha as datas para agilizar seu teste - mas se informar, você filtrará conforme o período informado).


Com esta tela do resultado aberta, você poderá ordenar por data da ultima compra, total vendido, filtrar itens sem venda, etc....use a criatividade para vender mais ao cliente.



138 visualizações0 comentário

Posts recentes

Ver tudo

Comments


  • Instagram
  • LinkedIn ícone social
  • iconeWhats
  • Nosso Canal com Dicas Rápidas
bottom of page