Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Relacionando e Somando

Boa tarde, fiz os cursos de mysql, mas quando vamos pra pratica as coisas vai complicando um pouquinho kkk, por favor, me ajudem ... Imaginem esse cenario

Digamos que eu tenha essas tabelas com essas respectivas colunas:

[Servico] - serv_id | serv_equipe | serv_data |

[Atividade] - ati_id | serv_id | ati_quantidade | bar_id

[Baremos] - bar_id | bar_titulo | bar_valor_unitario

[Equipe] - equ_id | coord_id | sup_id |

[Colaborador] - colab_id | colab_nome | colab_funcao

Um serviço pode ter varias atividades. E esse "BAREMOS" é a descriçao da atividade e seu valor unitario... O serviço vai ter uma equipe, e a equipe vai ter um coordenador e supervisor. Na tabela Colaborador, eu vou ter o nome do cidadão e uma coluna que informa se ele é coordenador ou supervisor.

O que eu queria, o valor total de um coordenador, que foi produzido nessas atividades dentro de um dia.

Consigo ja calcular o valor total de uma atividade ... Mas estou travado ai

6 respostas

Oi Yago, confesso que fiquei um pouco confuso com o cenário, você pode me mostrar o SQL que escreve pra gerar o total de uma atividade pra ver se consigo pegar a ideia de forma mais prática?

Wanderson, obrigado pela participação, mas antes disso fiz uma parada que está solucionando meu problema. Porem não sei se é boa pratica ou se posso ter problemas futuros de desempenho.

Criei um view no meu banco de dados, e nessa eu consigo relacionar o supervisor , o coordenador, o preco total da atividade....

Depois era so eu criar uma consulta onde fizesse a soma de cada registro agrupado por coordenador...

O que voces acham ??

Não sei se entendi bem, você criou uma view que resolve parcialmente o problema e pretender fazer uma query em cima dessa view pra pegar o restante do resultado?

Wanderson, isso mesmo. O que acha dessa solução, é usual ? Posso ter problemas com ela ?

Pra falar a verdade eu não sei, não conheço muito sobre views. Mas eu pessoalmente acho estranho ter uma view que ainda vou precisar fazer uma query em cima dela pra conseguir o que preciso.

Talvez você chegue a ter problemas com ela, caso precise de outros dados que ela não provê de forma fácil. Tirando isso, não consigo pensar em um cenário.

Como você disse que precisa de um somatório de uma das colunas, você pode fazer isso com um select e sum(nome_da_coluna). Talvez precise fazer um groub by pelo gerente e o id do serviço. Mas precisa ver e testar mesmo.

Pra mim ainda tá bem abstrato pra mim conseguir te dar uma resposta muito certa.

Se eu entendi a estrutura corretamente, uma solução seria:

SELECT C.colab_nome, sum(B.bar_valor_unitario * A.ati_quantidade) as total FROM Colaborador as C, Equipe as E, Servico as S, Atividade as A, baremos as B WHERE C.colab_id = E.coord_id AND E.equ_id = S.serv_equipe AND S.serv_id = A.serv_id AND A.bar_id = B.bar_id AND C.colab_funcao = 'COORDENADOR' AND S.ser_data = '2018-10-03' GROUP BY C.colab_nome