Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá.
Eu tenho duas tabelas onde o qlik faz um join usando a coluna 'Servidor'
Eu quero que os valores nulos das linhas resultantes desse join sejam tratados como strings vazias. Mas não está funcionando.
Aqui está meu script:
NullAsValue *;
Set Nullvalue = '';
LOAD Servidor,
Início,
Fim,
Horas,
Curso;
[cursos]:
SQL SELECT NomeEmpregado as Servidor,
evento."DataIniRealizacao" as Início,
evento."DataFimRealizacao" as Fim,
evento."CargaHoraria" as Horas,
evento."descEvento" as Curso
FROM SARH.dbo.Empregado
LEFT JOIN SDTA.dbo."V_AuditoriaEventoServidor" as evento
ON evento.numCpf = Empregado.NumCpf
LEFT JOIN SARH.dbo.DadosFuncionais as dados
ON dados.CodEmpregado = Empregado.CodEmpregado
JOIN SARH.dbo.Orgao as orgao
ON orgao.CodOrgao = dados.CodUltimaLotacao
AND orgao.SiglaOrgao LIKE 'GR08%'
WHERE dados.DataSaidaEmpregado is null
UNION
SELECT NomeEmpregado as Servidor2,
capacitacao."DataInicio" as Início2,
capacitacao."DataFim" as Fim2,
capacitacao."CargaHoraria" as Horas2,
capacitacao."descTitulo" as Curso2
FROM SARH.dbo.Empregado
LEFT JOIN SDTA.dbo."SHC_CapacitacaoNaoInstitucional" as capacitacao
ON capacitacao.CodEmpregado = Empregado.CodEmpregado
LEFT JOIN SARH.dbo.DadosFuncionais as dados
ON dados.CodEmpregado = Empregado.CodEmpregado
JOIN SARH.dbo.Orgao as orgao
ON orgao.CodOrgao = dados.CodUltimaLotacao
AND orgao.SiglaOrgao LIKE 'GR08%'
WHERE dados.DataSaidaEmpregado is null;
[cursos_sugeridos]:
LOAD
[Titulos],
[Servidor]
FROM [lib://AttachedFiles/Indicação de cursos_2.xlsx]
(ooxml, embedded labels, table is Planilha2);
Eu estou usando NullAsValue mas eu ainda obtenho o seguinte:
Ao mesmo tempo eu tenho:
Com strings vazias ao invés de valores nulos.
Por que isto está acontecendo? Como posso consertar?
Agradeço antecipadamente.
Olá @lailarhc
Você tem duas tabelas: [cursos] e [cursos_sugeridos]. O Qlik faz a associação entre as duas in-memory e apresenta nulos nas colunas cujas linhas não tem associação. Para resolver isso, vc poderia fazer um terceiro join e criar uma tabela única.
[cursos_sugeridos]:
outer join (cursos)
LOAD
[Titulos],
[Servidor]
FROM [lib://AttachedFiles/Indicação de cursos_2.xlsx]
(ooxml, embedded labels, table is Planilha2);
Assim, ele irá criar uma tabela única contendo todos os registros de ambas as tabelas e os nulos com espaços respeitando as parametrizações de nulos.
Agora, olhando para sua sentença SQL acredito que tenha uma falha nela. Os nomes dos campos marcados em negrito deveriam ser iguais, do contrário, vc está criando dois grupos de colunas (p.ex. Servidor e Servidor2) e com isso, tanto a associatividade quanto o join não vão funcionar de qualquer maneira.
"SQL SELECT NomeEmpregado as Servidor,
evento."DataIniRealizacao" as Início,
evento."DataFimRealizacao" as Fim,
evento."CargaHoraria" as Horas,
evento."descEvento" as Curso
(...)
UNION
SELECT NomeEmpregado as Servidor2,
capacitacao."DataInicio" as Início2,
capacitacao."DataFim" as Fim2,
capacitacao."CargaHoraria" as Horas2,
capacitacao."descTitulo" as Curso2
(...)"
[],
Pedro