Retornar Data ultimo orçamento e ultima venda.

SQL Server

SQL

Query

26/08/2021

Boa tarde .

Tenho a query abaixo porem no resultado esta me trazendo os vendedores repetidos e queria somente a ultima data do orçamento e a ultima data do pedido de venda. Nao estou conseguindo esse resultado , alguem consegue me ajudar

select
Crm_Clientes.CodCliente,
Crm_Clientes.ObjId,
Crm_Clientes.RazaoSocial,
Crm_Clientes.Nome as NomeCliente,
Crm_Clientes.CGC,
Crm_Clientes.CodExterno,
Crm_Clientes.CodVendedor,
Vendedores.Nome,
max (OrcHdr.DtEmissao) as DtUltimoOrcamento,
max (COMRHeaderPedido.DtPedido)as DtUltimaVenda,
crmTCActor.InsDt as DataDaInclusao,
crmTCActor.UpdDt as DataDaAlteracao

from Crm_Clientes
left join OrcHdr on OrcHdr.ObjidCliente = Crm_Clientes.ObjId
left join COMRHeaderPedido on COMRHeaderPedido.CliProduto = Crm_Clientes.CodCliente
inner join crmTCActor on crmTCActor.Code = Convert(varchar(32),Crm_Clientes.CodCliente)
inner join Vendedores on Vendedores.CodVendedor = Crm_Clientes.CodVendedor

where CodExterno = 'CL'
and orchdr.DtEmissao >= '2021-01-01'

group by
DtUltimoOrcamento,
DtUltimaCompra,
OrcHdr.ObjidCliente,
Crm_Clientes.CodVendedor,
COMRHeaderPedido.CliProduto,
Crm_Clientes.CodCliente,
Crm_Clientes.ObjId,
Crm_Clientes.RazaoSocial,
Crm_Clientes.Nome,
Crm_Clientes.CGC,
Crm_Clientes.CodExterno,
Vendedores.Nome,
crmTCActor.UpdDt,
crmTCActor.InsDt
Enock Junior

Enock Junior

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

26/08/2021

para que não haja duplicidade você não pode apresentar conteúdos distintos.

você quer mostrar a data do último orçamento e do último pedido por vendedor e cliente? apresente o vendedor, o cliente e as datas;
você quer mostrar a data do último orçamento e do último pedido por vendedor? apresente o vendedor e as datas;

-- por cliente e vendedor
select
	Crm_Clientes.CodCliente,
	Crm_Clientes.ObjId,
	Crm_Clientes.RazaoSocial,
	Crm_Clientes.Nome as NomeCliente,
	Crm_Clientes.CGC,
	Crm_Clientes.CodExterno,
	Crm_Clientes.CodVendedor,
	Vendedores.Nome,
	max(OrcHdr.DtEmissao) as DtUltimoOrcamento,
	max(COMRHeaderPedido.DtPedido) as DtUltimaVenda
from
	Crm_Clientes
left join
	OrcHdr on OrcHdr.ObjidCliente = Crm_Clientes.ObjId
left join
	COMRHeaderPedido on COMRHeaderPedido.CliProduto = Crm_Clientes.CodCliente
inner join
	crmTCActor on crmTCActor.Code = Convert(varchar(32),Crm_Clientes.CodCliente)
inner join
	Vendedores on Vendedores.CodVendedor = Crm_Clientes.CodVendedor
where
	CodExterno = 'CL'
	and orchdr.DtEmissao >= '2021-01-01'
group by
	Crm_Clientes.CodCliente,
	Crm_Clientes.ObjId,
	Crm_Clientes.RazaoSocial,
	Crm_Clientes.Nome,
	Crm_Clientes.CGC,
	Crm_Clientes.CodExterno,
	Crm_Clientes.CodVendedor,
	Vendedores.Nome

-- por vendedor (que pode ter mais de um cliente):
select
	Vendedores.Nome,
	max(OrcHdr.DtEmissao) as DtUltimoOrcamento,
	max(COMRHeaderPedido.DtPedido) as DtUltimaVenda
from
	Crm_Clientes
left join
	OrcHdr on OrcHdr.ObjidCliente = Crm_Clientes.ObjId
left join
	COMRHeaderPedido on COMRHeaderPedido.CliProduto = Crm_Clientes.CodCliente
inner join
	crmTCActor on crmTCActor.Code = Convert(varchar(32),Crm_Clientes.CodCliente)
inner join
	Vendedores on Vendedores.CodVendedor = Crm_Clientes.CodVendedor
where
	CodExterno = 'CL'
	and orchdr.DtEmissao >= '2021-01-01'
group by
	Vendedores.Nome

obs: distinct e group by na mesma instrução é redundânca.

GOSTEI 1

Mais Respostas

Jair N.

Jair N.

26/08/2021

Boa tarde .

Tenho a query abaixo porem no resultado esta me trazendo os vendedores repetidos e queria somente a ultima data do orçamento e a ultima data do pedido de venda. Nao estou conseguindo esse resultado , alguem consegue me ajudar

select

Crm_Clientes.CodVendedor,
Vendedores.Nome,
max (OrcHdr.DtEmissao) as DtUltimoOrcamento,
max (COMRHeaderPedido.DtPedido)as DtUltimaVenda,
crmTCActor.InsDt as DataDaInclusao,
crmTCActor.UpdDt as DataDaAlteracao

from Crm_Clientes
left join OrcHdr on OrcHdr.ObjidCliente = Crm_Clientes.ObjId
left join COMRHeaderPedido on COMRHeaderPedido.CliProduto = Crm_Clientes.CodCliente
inner join crmTCActor on crmTCActor.Code = Convert(varchar(32),Crm_Clientes.CodCliente)
inner join Vendedores on Vendedores.CodVendedor = Crm_Clientes.CodVendedor

where CodExterno = 'CL'
and orchdr.DtEmissao >= '2021-01-01'

group by
DtUltimoOrcamento,
DtUltimaCompra,
OrcHdr.ObjidCliente,
Crm_Clientes.CodVendedor,
Vendedores.Nome,
crmTCActor.UpdDt,
crmTCActor.InsDt


=> Remove seleção
Crm_Clientes.CodCliente,
Crm_Clientes.ObjId,
Crm_Clientes.RazaoSocial,
Crm_Clientes.Nome as NomeCliente,
Crm_Clientes.CGC,
Crm_Clientes.CodExterno,
=> Remove agrupamento
Crm_Clientes.CodCliente,
Crm_Clientes.ObjId,
Crm_Clientes.RazaoSocial,
Crm_Clientes.Nome,
Crm_Clientes.CGC,
Crm_Clientes.CodExterno,
-- Este aqui pode ser a questão de repetição por cliente...
COMRHeaderPedido.CliProduto,
GOSTEI 0
Gxf

Gxf

26/08/2021

tente:


select distinct
Crm_Clientes.CodCliente,
Crm_Clientes.ObjId,
Crm_Clientes.RazaoSocial,
Crm_Clientes.Nome as NomeCliente,
Crm_Clientes.CGC,
Crm_Clientes.CodExterno,
Crm_Clientes.CodVendedor,
Vendedores.Nome,
max (OrcHdr.DtEmissao) as DtUltimoOrcamento,
max (COMRHeaderPedido.DtPedido)as DtUltimaVenda,
crmTCActor.InsDt as DataDaInclusao,
crmTCActor.UpdDt as DataDaAlteracao

from Crm_Clientes
left join OrcHdr on OrcHdr.ObjidCliente = Crm_Clientes.ObjId
left join COMRHeaderPedido on COMRHeaderPedido.CliProduto = Crm_Clientes.CodCliente
inner join crmTCActor on crmTCActor.Code = Convert(varchar(32),Crm_Clientes.CodCliente)
inner join Vendedores on Vendedores.CodVendedor = Crm_Clientes.CodVendedor

where CodExterno = 'CL'
and orchdr.DtEmissao >= '2021-01-01'

group by
DtUltimoOrcamento,
DtUltimaCompra,
OrcHdr.ObjidCliente,
Crm_Clientes.CodVendedor,
COMRHeaderPedido.CliProduto,
Crm_Clientes.CodCliente,
Crm_Clientes.ObjId,
Crm_Clientes.RazaoSocial,
Crm_Clientes.Nome,
Crm_Clientes.CGC,
Crm_Clientes.CodExterno,
Vendedores.Nome,
crmTCActor.UpdDt,
crmTCActor.InsDt
GOSTEI 0
Enock Junior

Enock Junior

26/08/2021

Obrigado pela ajuda, porem continua aparecendo repetido e nao me trazendo apenas 1 .

Renato/ 2021-04-13 18:31:14.000 2021-04-07 00:00:00.000 2020-02-18 16:13:41.000 2021-03-22 14:29:09.000
Renato/ 2021-03-19 14:57:00.000 2020-01-24 00:00:00.000 2017-03-09 12:11:01.000 2021-03-18 12:01:11.000
Renato/ 2021-04-22 15:52:41.000 2021-04-20 00:00:00.000 2018-07-25 15:55:20.000 2021-04-23 09:19:39.000
Renato/ 2021-03-25 17:34:01.000 2020-09-22 00:00:00.000 2015-09-03 18:56:13.000 2021-03-24 10:23:26.000
Renato/ 2021-03-18 18:18:47.000 2019-03-15 00:00:00.000 2019-02-15 15:44:57.000 2021-03-15 11:14:14.000


tente:


select distinct
Crm_Clientes.CodCliente,
Crm_Clientes.ObjId,
Crm_Clientes.RazaoSocial,
Crm_Clientes.Nome as NomeCliente,
Crm_Clientes.CGC,
Crm_Clientes.CodExterno,
Crm_Clientes.CodVendedor,
Vendedores.Nome,
max (OrcHdr.DtEmissao) as DtUltimoOrcamento,
max (COMRHeaderPedido.DtPedido)as DtUltimaVenda,
crmTCActor.InsDt as DataDaInclusao,
crmTCActor.UpdDt as DataDaAlteracao

from Crm_Clientes
left join OrcHdr on OrcHdr.ObjidCliente = Crm_Clientes.ObjId
left join COMRHeaderPedido on COMRHeaderPedido.CliProduto = Crm_Clientes.CodCliente
inner join crmTCActor on crmTCActor.Code = Convert(varchar(32),Crm_Clientes.CodCliente)
inner join Vendedores on Vendedores.CodVendedor = Crm_Clientes.CodVendedor

where CodExterno = 'CL'
and orchdr.DtEmissao >= '2021-01-01'

group by
DtUltimoOrcamento,
DtUltimaCompra,
OrcHdr.ObjidCliente,
Crm_Clientes.CodVendedor,
COMRHeaderPedido.CliProduto,
Crm_Clientes.CodCliente,
Crm_Clientes.ObjId,
Crm_Clientes.RazaoSocial,
Crm_Clientes.Nome,
Crm_Clientes.CGC,
Crm_Clientes.CodExterno,
Vendedores.Nome,
crmTCActor.UpdDt,
crmTCActor.InsDt
GOSTEI 0
Enock Junior

Enock Junior

26/08/2021

Obrigado, porem continua acontencendo

Renato/ 2021-04-13 18:31:14.000 2021-04-07 00:00:00.000 2020-02-18 16:13:41.000 2021-03-22 14:29:09.000
Renato/ 2021-03-19 14:57:00.000 2020-01-24 00:00:00.000 2017-03-09 12:11:01.000 2021-03-18 12:01:11.000
Renato/ 2021-04-22 15:52:41.000 2021-04-20 00:00:00.000 2018-07-25 15:55:20.000 2021-04-23 09:19:39.000
Renato/ 2021-03-25 17:34:01.000 2020-09-22 00:00:00.000 2015-09-03 18:56:13.000 2021-03-24 10:23:26.000
Renato/ 2021-03-18 18:18:47.000 2019-03-15 00:00:00.000 2019-02-15 15:44:57.000 2021-03-15 11:14:14.000


Boa tarde .

Tenho a query abaixo porem no resultado esta me trazendo os vendedores repetidos e queria somente a ultima data do orçamento e a ultima data do pedido de venda. Nao estou conseguindo esse resultado , alguem consegue me ajudar

select

Crm_Clientes.CodVendedor,
Vendedores.Nome,
max (OrcHdr.DtEmissao) as DtUltimoOrcamento,
max (COMRHeaderPedido.DtPedido)as DtUltimaVenda,
crmTCActor.InsDt as DataDaInclusao,
crmTCActor.UpdDt as DataDaAlteracao

from Crm_Clientes
left join OrcHdr on OrcHdr.ObjidCliente = Crm_Clientes.ObjId
left join COMRHeaderPedido on COMRHeaderPedido.CliProduto = Crm_Clientes.CodCliente
inner join crmTCActor on crmTCActor.Code = Convert(varchar(32),Crm_Clientes.CodCliente)
inner join Vendedores on Vendedores.CodVendedor = Crm_Clientes.CodVendedor

where CodExterno = 'CL'
and orchdr.DtEmissao >= '2021-01-01'

group by
DtUltimoOrcamento,
DtUltimaCompra,
OrcHdr.ObjidCliente,
Crm_Clientes.CodVendedor,
Vendedores.Nome,
crmTCActor.UpdDt,
crmTCActor.InsDt


=> Remove seleção
Crm_Clientes.CodCliente,
Crm_Clientes.ObjId,
Crm_Clientes.RazaoSocial,
Crm_Clientes.Nome as NomeCliente,
Crm_Clientes.CGC,
Crm_Clientes.CodExterno,
=> Remove agrupamento
Crm_Clientes.CodCliente,
Crm_Clientes.ObjId,
Crm_Clientes.RazaoSocial,
Crm_Clientes.Nome,
Crm_Clientes.CGC,
Crm_Clientes.CodExterno,
-- Este aqui pode ser a questão de repetição por cliente...
COMRHeaderPedido.CliProduto,
GOSTEI 0
Enock Junior

Enock Junior

26/08/2021

Emerson, Muito Obrigado Novamente.

Deu certo. Gratidao.

Att


para que não haja duplicidade você não pode apresentar conteúdos distintos.

você quer mostrar a data do último orçamento e do último pedido por vendedor e cliente? apresente o vendedor, o cliente e as datas;
você quer mostrar a data do último orçamento e do último pedido por vendedor? apresente o vendedor e as datas;

-- por cliente e vendedor
select
	Crm_Clientes.CodCliente,
	Crm_Clientes.ObjId,
	Crm_Clientes.RazaoSocial,
	Crm_Clientes.Nome as NomeCliente,
	Crm_Clientes.CGC,
	Crm_Clientes.CodExterno,
	Crm_Clientes.CodVendedor,
	Vendedores.Nome,
	max(OrcHdr.DtEmissao) as DtUltimoOrcamento,
	max(COMRHeaderPedido.DtPedido) as DtUltimaVenda
from
	Crm_Clientes
left join
	OrcHdr on OrcHdr.ObjidCliente = Crm_Clientes.ObjId
left join
	COMRHeaderPedido on COMRHeaderPedido.CliProduto = Crm_Clientes.CodCliente
inner join
	crmTCActor on crmTCActor.Code = Convert(varchar(32),Crm_Clientes.CodCliente)
inner join
	Vendedores on Vendedores.CodVendedor = Crm_Clientes.CodVendedor
where
	CodExterno = 'CL'
	and orchdr.DtEmissao >= '2021-01-01'
group by
	Crm_Clientes.CodCliente,
	Crm_Clientes.ObjId,
	Crm_Clientes.RazaoSocial,
	Crm_Clientes.Nome,
	Crm_Clientes.CGC,
	Crm_Clientes.CodExterno,
	Crm_Clientes.CodVendedor,
	Vendedores.Nome

-- por vendedor (que pode ter mais de um cliente):
select
	Vendedores.Nome,
	max(OrcHdr.DtEmissao) as DtUltimoOrcamento,
	max(COMRHeaderPedido.DtPedido) as DtUltimaVenda
from
	Crm_Clientes
left join
	OrcHdr on OrcHdr.ObjidCliente = Crm_Clientes.ObjId
left join
	COMRHeaderPedido on COMRHeaderPedido.CliProduto = Crm_Clientes.CodCliente
inner join
	crmTCActor on crmTCActor.Code = Convert(varchar(32),Crm_Clientes.CodCliente)
inner join
	Vendedores on Vendedores.CodVendedor = Crm_Clientes.CodVendedor
where
	CodExterno = 'CL'
	and orchdr.DtEmissao >= '2021-01-01'
group by
	Vendedores.Nome

obs: distinct e group by na mesma instrução é redundânca.

GOSTEI 0
POSTAR