Obrigado por responder mas tem um ponto, se não tiver o case quando faz o union ele aparece o seguinte erro:
Msg 205, Level 16, State 1, Line 1
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.
Devido que 2 consultas sem preço e uma vai ter uma coluna a mais, vou postar aqui o código inteiro:
select m.ArquivoOrdemMov,m.ContadorAgenteMov,m.DataMov,m.SeqOrdemMov,m.SeqProduto,m.SaldoTotalMov,p.DescricaoProduto
–,case when m.ArquivoOrdemMov='OC’then ‘Possui preço de compra’
–else 'Sem valor’end
from Mov m
join MovFisica f on m.SeqMovFisica=f.SeqMovFisica
join MS s on m.ContadorAgenteMov=s.ContadorAgenteMS
join Produto p on m.SeqProduto=p.SeqProduto
where m.ArquivoOrdemMov=‘MS’ and s.SituacaoMS=‘FECHADA’
union
select m.ArquivoOrdemMov,m.ContadorAgenteMov,m.DataMov,m.SeqOrdemMov,m.SeqProduto,m.SaldoTotalMov,p.DescricaoProduto
–,case when m.ArquivoOrdemMov='OC’then ‘Possui preço de compra’
–else 'Sem valor’end
from Mov m
join MovFisica f on m.SeqMovFisica=f.SeqMovFisica
join ME e on m.ContadorAgenteMov=e.ContadorAgenteME
join Produto p on m.SeqProduto=p.SeqProduto
where m.ArquivoOrdemMov=‘ME’ and e.SituacaoME=‘FECHADA’
union
select m.ArquivoOrdemMov,m.ContadorAgenteMov,m.DataMov,m.SeqOrdemMov,m.SeqProduto,m.SaldoTotalMov,p.DescricaoProduto
–,ci.CustoOCItem
–,case when m.ArquivoOrdemMov='OC’then ‘Possui preço de compra’
–else 'Sem valor’end
from Mov m
join MovFisica f on m.SeqMovFisica=f.SeqMovFisica
join OC c on m.ContadorAgenteMov=c.ContadorAgenteOC
join Produto p on m.SeqProduto=p.SeqProduto
join OCItem ci on c.SeqOC=ci.SeqOC
where m.ArquivoOrdemMov=‘OC’ and c.SituacaoOC=‘FECHADA’.