Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Complemento para o Exercício CREATE TABLE e MASSA DE TESTE mais um EXERCÍCIO extra.

PessoALL,

Caso queira complementar seu exercício criando a tabela e montando uma massa de testes, segue:

CRIAR O BANCO DE DADOS:

CREATE TABLE tb_object_trabalha_em (
    Cpf_Funcionario varchar(11),
    JSONVALUE json
);

MASSA DE TESTES:

INSERT INTO tb_object_trabalha_em (Cpf_Funcionario, JSONVALUE)
VALUES ('111222333',  '{"Cpf_Funcionario":"111222333","Numero_Projeto":"5","Horas":"30"}'),
       ('98701011430',  '{"Cpf_Funcionario":"98701011430","Numero_Projeto":"1","Horas":"40"}'),
       ('98701011430',  '{"Cpf_Funcionario":"98701011430","Numero_Projeto":"3","Horas":"120"}'),
       ('25328357701',  '{"Cpf_Funcionario":"25328357701","Numero_Projeto":"3","Horas":"160"}'),
       ('64511115540',  '{"Cpf_Funcionario":"64511115540","Numero_Projeto":"2","Horas":"160"}'),
       ('36210837662',  '{"Cpf_Funcionario":"36210837662","Numero_Projeto":"1","Horas":"50"}'),
       ('36210837662',  '{"Cpf_Funcionario":"36210837662","Numero_Projeto":"2","Horas":"60"}'),
       ('36210837662',  '{"Cpf_Funcionario":"36210837662","Numero_Projeto":"3","Horas":"50"}'),
       ('33344555587',  '{"Cpf_Funcionario":"33344555587","Numero_Projeto":"3","Horas":"80"}'),
       ('33344555587',  '{"Cpf_Funcionario":"33344555587","Numero_Projeto":"2","Horas":"80"}'),
       ('97313536402',  '{"Cpf_Funcionario":"97313536402","Numero_Projeto":"5","Horas":"70"}'),
       ('97313536402',  '{"Cpf_Funcionario":"97313536402","Numero_Projeto":"2","Horas":"20"}'),
       ('97313536402',  '{"Cpf_Funcionario":"97313536402","Numero_Projeto":"4","Horas":"70"}'),
       ('07526572325',  '{"Cpf_Funcionario":"07526572325","Numero_Projeto":"6","Horas":"65"}'),
       ('07526572325',  '{"Cpf_Funcionario":"07526572325","Numero_Projeto":"7","Horas":"65"}'),
       ('07526572325',  '{"Cpf_Funcionario":"07526572325","Numero_Projeto":"5","Horas":"30"}'),
       ('73682332235',  '{"Cpf_Funcionario":"73682332235","Numero_Projeto":"7","Horas":"55"}'),
       ('73682332235',  '{"Cpf_Funcionario":"73682332235","Numero_Projeto":"5","Horas":"50"}'),
       ('73682332235',  '{"Cpf_Funcionario":"73682332235","Numero_Projeto":"6","Horas":"55"}'),
       ('11570566879',  '{"Cpf_Funcionario":"11570566879","Numero_Projeto":"6","Horas":"80"}'),
       ('11570566879',  '{"Cpf_Funcionario":"11570566879","Numero_Projeto":"7","Horas":"80"}'),
       ('41199543829',  '{"Cpf_Funcionario":"41199543829","Numero_Projeto":"6","Horas":"32"}'),
       ('41199543829',  '{"Cpf_Funcionario":"41199543829","Numero_Projeto":"7","Horas":"32"}'),
       ('41199543829',  '{"Cpf_Funcionario":"41199543829","Numero_Projeto":"11","Horas":"32"}'),
       ('41199543829',  '{"Cpf_Funcionario":"41199543829","Numero_Projeto":"9","Horas":"32"}'),
       ('41199543829',  '{"Cpf_Funcionario":"41199543829","Numero_Projeto":"8","Horas":"32"}');

SELECIONAR OS DADOS:

SELECT Cpf_Funcionario,
REPLACE(json_extract(JSONVALUE,"$.Cpf_Funcionario"),"""","") as Cpf_Funcionario,
REPLACE(json_extract(JSONVALUE,"$.Numero_Projeto"),"""","") as Numero_Projeto,
REPLACE(json_extract(JSONVALUE,"$.Horas"),"""","") as Horas
FROM tb_object_trabalha_em
WHERE json_extract(JSONVALUE,"$.Numero_Projeto") = "1";

EXERCÍCIO FÁCIL:

Listar o TOTAL de horas trabalhadas em TODOS os projetos por CADA gerente de projeto (Cpf_Funcionario).

Por favor leia a documentação do MySQL:

==========================================================

11.5 O tipo de dados JSON

https://dev.mysql.com/doc/refman/8.0/en/json.html

==========================================================

RESPOSTA DO EXERCÍCIO FÁCIL:

SELECT REPLACE(json_extract(JSONVALUE, "$.Cpf_Funcionario"),"""","") as Numero_Projeto,
       SUM(json_extract(JSONVALUE, "$.Horas")) as Horas
FROM tb_object_trabalha_em
GROUP BY json_extract(JSONVALUE, "$.Cpf_Funcionario")
ORDER BY CONVERT(json_extract(JSONVALUE, "$.Cpf_Funcionario"), UNSIGNED); 

[]'s,

Fabio I.

1 resposta
solução!

Oi, Fabio! Tudo bom?

Peço desculpas por demorar a te responder.

Obrigada por compartilhar com o fórum este complemento! Aliás, gostei bastante do exercício proposto e do fato que você, ao fim, trouxe a solução para o mesmo!

Continue sempre estudando e com essa dedicação. Fico à disposição para ajudar em caso de dúvidas.

Até mais!