Soma com tabelas

25/01/2015

Estou com duas tabelas que devem se relacionar:

vendas
- cod_venda
- cod_cliente
- data_venda
- valor_total

e a tabela de venda_itens
- cod_venda_item
- cod_venda
- cod_produto
- quantidade
- vl_unitario
- subtotal

tenho que pegar a quantidade + valor unitario colocar o valor no subtotal e transferir para o valor_total da tabela vendas.

Marilia Silva

Respostas

26/01/2015

Marisiana

Você esta fazendo isso diretamente no banco de dados ou é na aplicação?
Responder Citar

26/01/2015

Thiago Cruz

Este é o join básico para sua consulta:

Select a.quantidade, a.vl_unitario, a.subtotal, b.valor_total
       From Venda_item a
 Inner Join Vendas b
       On a.Cod_Venda = b.Cod_Venda
Responder Citar

26/01/2015

Marisiana

A informação no campo subtotal pode ser preenchida no momento que estiver sendo realizada a inserção ou alteração do item de venda.
A informação no campo valor_total poderá ser preenchida através de uma alteração (UPDATE) realizado após cada inserção, alteração ou exclusão de item.
Responder Citar

26/01/2015

Marilia Silva

Não entendi bem, a intenção, é pegar o valor unitario e o subtotal, acho que multiplica, depois esses valores vão para o valor_total, não seria assim?
Responder Citar

28/01/2015

Marisiana

Para alimentar o campo subtotal, você terá que multiplicar o vl_unitario pela quantidade.
Já o valor_total, vai ser a soma dos subtotais daquela venda.
Responder Citar

28/01/2015

Marilia Silva

Tem como fazer isso no banco? como?
Responder Citar

28/01/2015

Marisiana

Sim! Para inserir o item:
INSERT INTO venda_itens (cod_venda_item, 
                         cod_venda,
                         cod_produto,
                         quantidade,
                         vl_unitario,
                         subtotal) 
VALUES ( 11, 3, 123, 3, 12.50, 3 * 12.50 );
Responder Citar

28/01/2015

Marilia Silva

Mas como transferir esse valor para a outra tabela com o campo "valor_total"?
Responder Citar

29/01/2015

Marisiana

Na outra tabela você devera fazer UPDATE e setar o valor_total...
Assim q eu puder t passo um exemplo...
Responder Citar

29/01/2015

Marisiana

Uma opção para fazer a alteração do valor total de uma venda é passando código da venda como parâmetro "cod_venda = 1":
UPDATE vendas
SET valor_total = (select SUM(vi.subtotal * vi.quantidade)
                  from venda_itens vi
                  where vi.cod_venda = codigogrupoproduto )
WHERE cod_venda =  1  
Responder Citar

30/01/2015

Marilia Silva

Somente com upadate então não é?
Responder Citar

30/01/2015

Marisiana

Sim, pois você precisa ter a venda inserida para poder inserir os itens dela, então, depois de inseridos os itens você terá que alterar o valor da venda para setar o valor correto.
A não ser, na aplicação você tenha uma variável que possua o valor total da venda e passe esse valor no momento da inserção da venda.
Tudo depende de como você vai fazer essa manutenção..
Responder Citar

30/01/2015

Marilia Silva

Ai já foge um pouco do que estou estudando, mas entendi. obrigada mesmo Marisiana.
Responder Citar

02/02/2015

Marisiana

Por nada!
Mas acredito que não fuja do q vc está estudando...
Se vc está estudando banco de dados, vc sempre deverá ter a venda inserida para depois inserir os itens dela, pois o atributo cod_venda da tabela venda_itens deverá ser uma Foreign Key refereciando a tabela vendas.
Responder Citar

04/02/2015

Marilia Silva

Complicou um pouco, rsrsrs.
Responder Citar