Array
(
)

ajuda com erro em query

Victor Pavia
   - 21 jan 2013

Pessoal,
Tenho esta query que esta dando o seguinte erro onde esta destacado em MAIUSCULO (segunda linha - case when...):
"A conversão implícita do valor varchar em char não pode ser executada porque o agrupamento do valor não está resolvido devido a um conflito de agrupamento."
select tm.numeromov,tm.codcfo,f.nome,CB.codcesta, tm.DATAEMISSAO,

CASE WHEN CB.ENDENTREGA IS NULL THEN F.RUA ELSE CB.ENDENTREGA END AS ENDENTREGA,

cb.cidadeentrega,cb.complentrega,cb.dataentrega,cb.numentrega,cb.motorista,cb.confmontador,
f.RUAENTREGA,f.RUA,f.NUMERO,f.NUMEROENTREGA,f.BAIRRO,f.BAIRROENTREGA,f.TELEFONE,f.TELEFONEENTREGA
,f.CIDADE,f.CIDADEENTREGA,f.CODETD,f.CODETDENTREGA
from tmov tm
inner join TMOVCOMPL tmc on (tmc.IDMOV = tm.idmov)
inner join FCFO f on (f.CODCFO = tm.codcfo)
inner join varejaocereais.dbo.CestaBasica cb on (cb.codcesta = tmc.CODIGOCESTAS collate database_default)
where tm.STATUS <> ''C'' and tm.CODTMV = ''2.2.01''
and tm.DATAEMISSAO >=''17/01/2013''
and tm.DATAEMISSAO <=''17/01/2013''
order by f.NOME

Se alguém puder ajudar, fico grato.

Alex Lekao
   - 21 jan 2013

oi boa tarde!!!

experimenta forcar uma conversão para ver se funciona.

desculpe não ajudar muito, mas não consegui entender bem o código.

Abraco.

Alex - Lekao

Rbbarreto
   - 01 fev 2013

Fiz algumas mudança no seu SQL, da uma olhada acho que é isto..

select tm.numeromov,tm.codcfo,f.nome,CB.codcesta, tm.DATAEMISSAO,

CASE
WHEN CB.ENDENTREGA IS NULL THEN
convert(varchar(20), F.RUA)
ELSE
convert(varchar(20), CB.ENDENTREGA)
END AS ENDENTREGA,

cb.cidadeentrega,
cb.complentrega,
cb.dataentrega,
cb.numentrega,
cb.motorista,
cb.confmontador,
f.RUAENTREGA,
f.RUA,
f.NUMERO,
f.NUMEROENTREGA,
f.BAIRRO,
f.BAIRROENTREGA,
f.TELEFONE,
f.TELEFONEENTREGA,
f.CIDADE,
f.CIDADEENTREGA,
f.CODETD,
f.CODETDENTREGA
from tmov tm inner join TMOVCOMPL tmc on (tmc.IDMOV = tm.idmov)
inner join FCFO f on (f.CODCFO = tm.codcfo)
inner join varejaocereais.dbo.CestaBasica cb on (cb.codcesta = tmc.CODIGOCESTAS collate database_default)
where tm.STATUS <> 'C' and tm.CODTMV = '2.2.01'
and CONVERT(date, tm.DATAEMISSAO, 103) between
convert(date, '17/01/2013', 103) and CONVERT(date, '17/01/2013', 103)

order by f.NOME