Olá. Tudo bem?
Fiz um teste com o UNION, no entanto teria uma solução mais compacta?
SELECT
JSON_EXTRACT(JSONVALUE, "$.Nome_Departamento") AS Nome_Departamento,
JSON_EXTRACT(JSONVALUE, "$.Projeto[0].Nome_Projeto") AS Nome_Projeto,
t2.CPF_FUNCIONARIO,
t2.Horas
FROM tb_object_departamento_trabalha_em
CROSS JOIN JSON_TABLE(
JSON_EXTRACT(JSONVALUE, "$.Projeto[0].Horas_Trabalhadas"),
"$[*]"
COLUMNS (
CPF_FUNCIONARIO VARCHAR(11) PATH "$.Cpf_Funcionario",
Horas INT PATH "$.Horas"
)
) t2
UNION
SELECT
JSON_EXTRACT(JSONVALUE, "$.Nome_Departamento") AS Nome_Departamento,
JSON_EXTRACT(JSONVALUE, "$.Projeto[1].Nome_Projeto") AS Nome_Projeto,
t2.CPF_FUNCIONARIO,
t2.Horas
FROM tb_object_departamento_trabalha_em
CROSS JOIN JSON_TABLE(
JSON_EXTRACT(JSONVALUE, "$.Projeto[1].Horas_Trabalhadas"),
"$[*]"
COLUMNS (
CPF_FUNCIONARIO VARCHAR(11) PATH "$.Cpf_Funcionario",
Horas INT PATH "$.Horas"
)
) t2