Como não tenho muito conhecimento, não consegui enterder a estrutura dessa seleção, minha dúvida é essa;
Já tentei de diversas forma adicionar mais um join, que seria a descrição do produto (campo ds_produto da tabela produto), eu achava que bastava adicionar o join na penúltima e última FROM/WHERE, mas não deu certo, em qual select teria que adicionar o join?
Outra dúvida é qual o objetivo desse select com Null td_contagem e 0 hr_contagem?
Select Copia_Estoque.Cd_Contagem
, Null dt_contagem
, Null hr_contagem
, Null dt_geracao
, Null hr_geracao
, Copia_Estoque.cd_produto
, 0 qt_estoque
, 0 qt_estoque_doado
, 0 vl_custo_medio
Select Saldo_Atual.cd_contagem
, Saldo_Atual.dt_contagem
, Saldo_Atual.hr_contagem
, Saldo_Atual.dt_geracao
, Saldo_Atual.hr_geracao
, Saldo_Atual.cd_produto
, Saldo_Atual.Qt_estoque
, Saldo_Atual.Qt_estoque_doado
, Saldo_Atual.vl_custo_medio
, Nvl(Saldo_Anterior.qt_anterior, 0) Qt_Anterior
, Nvl(Saldo_Anterior.qt_anterior_doado, 0) Qt_Anteior_Doado
, Saldo_Atual.ds_unidade
From (
Select contagem.cd_contagem
, contagem.dt_contagem
, contagem.hr_contagem
, contagem.dt_geracao
, contagem.hr_geracao
, itcontagem.cd_produto
, Sum(itcontagem.qt_estoque * uni_pro.vl_Fator) qt_estoque
, Sum(itcontagem.qt_estoque_doado * uni_pro.vl_fator) qt_estoque_doado
, avg(itcontagem.vl_custo_medio / uni_pro.vl_fator ) vl_custo_medio
, 0 qt_anterior
, 0 qt_anterior_doado
, uni_pro.ds_unidade
From Dbamv.Contagem
, Dbamv.ItContagem
, Dbamv.Uni_Pro
Where Contagem.Cd_Contagem = ItContagem.Cd_Contagem
And ItContagem.Cd_Uni_Pro = Uni_Pro.Cd_Uni_Pro
Group By Contagem.Cd_Contagem
, contagem.Dt_Contagem
, contagem.Hr_Contagem
, contagem.Dt_Geracao
, contagem.Hr_Geracao
, itcontagem.Cd_Produto
, Uni_Pro.Ds_Unidade
) Saldo_Atual
, (
Select Copia_Estoque.Cd_Contagem
, Null dt_contagem
, Null hr_contagem
, Null dt_geracao
, Null hr_geracao
, Copia_Estoque.cd_produto
, 0 qt_estoque
, 0 qt_estoque_doado
, 0 vl_custo_medio
, Sum(Copia_Estoque.Qt_Estoque) qt_anterior
, Sum(Copia_Estoque.Qt_Estoque_Doado) qt_anterior_doado
, Null ds_unidade
From Dbamv.Copia_Estoque
Group By Copia_Estoque.Cd_Contagem
, Copia_Estoque.cd_produto
) Saldo_Anterior
Where Saldo_Atual.Cd_Contagem = Saldo_Anterior.Cd_Contagem(+)
And Saldo_Atual.Cd_Produto = Saldo_Anterior.Cd_Produto(+)