Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Criação de Views retornando varias vezes o mesmo valor.

Estou tentando ciar uma view de faturamento, mas está retornado o mesmo valor diverssas vezes para memsma nota.

esse é o script dela. alguem consegue me ajudar a identificar o erro?

select
        a.numvenda
        ,a.dtvenda
        ,a.cpf
        ,a.cliente
        ,a.codigo_do_produto
        ,b.nome_do_produto
        ,b.embalagem
        ,b.tamanho
        ,a.quantidade
        ,a.preco_vendido pvenda
        ,b.preco_de_lista as ptabela
        ,a.totvenda
        ,(a.quantidade*b.preco_de_lista) as tottabela
        ,a.matricula_vendedor
        ,a.nome_vendedor
        ,a.percentual_comissao
from
(
select 
     tabela_notas_fiscais.numero as numvenda
    ,tabela_notas_fiscais.data_venda as dtvenda
    ,tabela_notas_fiscais.cpf
    ,tabela_de_clientes.nome as cliente
    ,tabela_itens_notas_fiscais.codigo_do_produto
    ,tabela_itens_notas_fiscais.quantidade
    ,tabela_itens_notas_fiscais.preco as preco_vendido
    ,(tabela_itens_notas_fiscais.preco*tabela_itens_notas_fiscais.quantidade) as totvenda
    ,tabela_notas_fiscais.matricula as matricula_vendedor
    ,tabela_de_vendedores.nome as nome_vendedor
    ,tabela_de_vendedores.percentual_comissao
from tabela_notas_fiscais
inner join tabela_de_vendedores on tabela_de_vendedores.matricula = tabela_notas_fiscais.matricula
inner join tabela_itens_notas_fiscais on tabela_itens_notas_fiscais.numero = tabela_notas_fiscais.numero
inner join tabela_de_clientes on tabela_de_clientes.cpf = tabela_notas_fiscais.cpf
)a
inner join tabela_de_produtos b on a.codigo_do_produto = b.codigo_do_produto;
2 respostas

Consegui identificar o erro. segue o script corrigido.

create view VW_Faturamento as 
(
select
        a.numvenda
        ,a.dtvenda
        ,a.cpf
        ,a.cliente
        ,a.codigo_do_produto
        ,b.nome_do_produto
        ,b.embalagem
        ,b.tamanho
        ,a.quantidade
        ,a.preco_vendido pvenda
        ,b.preco_de_lista as ptabela
        ,a.totvenda
        ,(a.quantidade*b.preco_de_lista) as tottabela
        ,a.matricula_vendedor
        ,a.nome_vendedor
        ,a.percentual_comissao
from
(
select 
     tabela_notas_fiscais.numero as numvenda
    ,tabela_notas_fiscais.data_venda as dtvenda
    ,tabela_notas_fiscais.cpf
    ,tabela_de_clientes.nome as cliente
    ,tabela_itens_notas_fiscais.codigo_do_produto
    ,tabela_itens_notas_fiscais.quantidade
    ,tabela_itens_notas_fiscais.preco as preco_vendido
    ,(tabela_itens_notas_fiscais.preco*tabela_itens_notas_fiscais.quantidade) as totvenda
    ,tabela_notas_fiscais.matricula as matricula_vendedor
    ,tabela_de_vendedores.nome as nome_vendedor
    ,tabela_de_vendedores.percentual_comissao
from tabela_notas_fiscais
inner join tabela_de_vendedores on tabela_de_vendedores.matricula = tabela_notas_fiscais.matricula
inner join tabela_itens_notas_fiscais on tabela_itens_notas_fiscais.numero = tabela_notas_fiscais.numero
inner join tabela_de_clientes on tabela_de_clientes.cpf = tabela_notas_fiscais.cpf
) a
inner join tabela_de_produtos b on a.codigo_do_produto = b.codigo_do_produto
)
solução!

Olá Arthur, tudo bem?

Fico feliz em saber que você conseguiu identificar o erro e resolver o seu problema e ainda compartilhou aqui com a gente :)

Continue assim e bons estudos!