Olá Pessoal
Se alguma alma caridosa puder me ajudar, gostaria de contar com o conhecimento e habilidade técnica de vocês.
Seguinte:
O Cliente precisa fazer um acompanhamento do Cotado X Comprado (através de planilha).
Tentei fazer uma consulta (SQL não é meu forte) mas estou deparando com alguns erros. (acredito que não tenho a sentença correta).
Gostaria de poder contar com o apoio de vocês para sanar alguns erros que ainda não consegui resolver.
São 2 planilhas
1 - Materiais
2 - Serviços
O que está pegando é quando existe o desmembramento dos pedidos (em n vezes). A planilha não está validando isso.
Se alguém puder me ajudar, ficarei muito agradecido (e pago uma gelada pra quem aparecer em Londrina!)
rsss
Ah! Aos programadores, não vale risadinhas...(estou aprendendo o sql)
rsss
Abraço!
Gustavo
PLANILHA MATERIAL (ACOMPANHAMENTO)
select distinct
tmov.numeromov,
tmov.dataemissao,
tprd.nomefantasia,
titmmov.codund,
titmmov.quantidade,
titmmov.precounitario,
CAST (titmmov.quantidade * titmmov.precounitario AS VARCHAR (30)),
'Comprado',
tmov.dataentrega,
case when TITMMOVRATCCU.CODCCUSTO = '0' or TITMMOVRATCCU.CODCCUSTO is NULL
then tmovratccu.codccusto
else TITMMOVRATCCU.CODCCUSTO
end Centrocusto
from
titmmov
left join tmov
on titmmov.codcoligada = tmov.codcoligada
and titmmov.idmov = tmov.idmov
left join tprd
on titmmov.codcoligada = tprd.codcoligada
and titmmov.idprd = tprd.idprd
left outer join titmmovratccu
on titmmov.codcoligada = titmmovratccu.codcoligada
and titmmov.idmov = titmmovratccu.idmov
and titmmov.nseqitmmov = titmmovratccu.nseqitmmov
left outer join tmovratccu
on tmov.codcoligada = tmovratccu.codcoligada
and tmov.idmov = tmovratccu.idmov
where
titmmov.codcoligada = :PLN_B1_S
and tmov.dataemissao >= :PLN_B2_D
and tmov.dataemissao <= :PLN_B3_D
and codtmv in ('1.2.01', '1.2.20')
union
select DISTINCT
tmov.numeromov,
tmov.dataemissao,
tprd.nomefantasia,
titmmov.codund,
titmmov.quantidade,
titmmov.precounitario,
' ',
'Cotação',
tmov.dataentrega,
case when TITMMOVRATCCU.CODCCUSTO = '0' or TITMMOVRATCCU.CODCCUSTO is NULL
then tmovratccu.codccusto
else TITMMOVRATCCU.CODCCUSTO
end Centrocusto
from
titmmov
left join tmov
on titmmov.codcoligada = tmov.codcoligada
and titmmov.idmov = tmov.idmov
left join tprd
on titmmov.codcoligada = tprd.codcoligada
and titmmov.idprd = tprd.idprd
left outer join titmmovratccu
on titmmov.codcoligada = titmmovratccu.codcoligada
and titmmov.idmov = titmmovratccu.idmov
and titmmov.nseqitmmov = titmmovratccu.nseqitmmov
left outer join tmovratccu
on tmov.codcoligada = tmovratccu.codcoligada
and tmov.idmov = tmovratccu.idmov
where
titmmov.codcoligada = :PLN_B1_S
and tmov.dataemissao >= :PLN_B2_D
and tmov.dataemissao <= :PLN_B3_D
and codtmv in ('1.1.02', '1.1.06')
and tmov.idmov not in
(select
idmovorigem
from
tmovrelac as a
left join tmov as b
on a.codcoldestino = b.codcoligada
and a.idmovdestino = b.idmov
where
codtmv in ('1.2.01', '1.2.20'))
order by
2, 1, 3
PLANILHA SERVIÇO - ACOMPANHAMENTO
select distinct
tmov.numeromov,
tmov.dataemissao,
tprd.nomefantasia,
titmmov.codund,
( case when isnull(titmmovratccu.valor,0) = 0 then tmovratccu.valor else titmmovratccu.valor end ) / titmmov.precounitario,
titmmov.precounitario,
' ',
'Comprado',
tmov.dataentrega,
case when TITMMOVRATCCU.CODCCUSTO = '0' or TITMMOVRATCCU.CODCCUSTO is NULL
then tmovratccu.codccusto
else TITMMOVRATCCU.CODCCUSTO
end Centrocusto,
case when isnull(titmmovratccu.valor,0) = 0 then tmovratccu.valor
else titmmovratccu.valor
end Rateio
from
titmmov
left join tmov
on titmmov.codcoligada = tmov.codcoligada
and titmmov.idmov = tmov.idmov
left join tprd
on titmmov.codcoligada = tprd.codcoligada
and titmmov.idprd = tprd.idprd
left outer join titmmovratccu
on titmmov.codcoligada = titmmovratccu.codcoligada
and titmmov.idmov = titmmovratccu.idmov
and titmmov.nseqitmmov = titmmovratccu.nseqitmmov
left outer join tmovratccu
on tmov.codcoligada = tmovratccu.codcoligada
and tmov.idmov = tmovratccu.idmov
where
titmmov.codcoligada = :PLN_B1_S
and tmov.dataemissao >= :PLN_B2_D
and tmov.dataemissao <= :PLN_B3_D
and codtmv in ('1.2.02', '1.2.21')
and titmmovratccu.valor is not null
order by
2, 1, 3