Sem categoria

Módulos do Tipo Consulta Apolo 6

Spread the love

Para módulos de consulta, basta que o código SQL esteja localizado no item “Código SQL” do módulo, exatamente como nas versões anteriores do Apolo.

Obs. 1: Utilizar ao invés do aliás de tabelas com letras (como “a”, “b” etc…), utilizar os aliás de tabelas sempre com o nome da tabela, exemplo sg001, sg002 etc… Isso por que facilita a documentação da query, para evitar termos que consultar que tabela a = sg001, b = sg002 etc…

Obs. 2: Agora devemos usar a palavra chave <<FILTRO>>, onde o código dinâmico do where da consulta será inserido. Isso traz mais flexibilidade ao código SQL, já que podemos ter o mesmo filtro em vários locais, como subselects por exemplo.

Exemplo de Código SQL para Consulta:

select
sw019.QUESTIONARIO_NUMERO as "<PT>Entrevista</PT><EN>Interview</EN>",
sw019.USUARIO_CRIACAO as  "<PT>Dispositivo</PT><EN>Device</EN>",
SW019.VALIDO as "<PT>Válido</PT><EN>Enabled</EN>",
sw019.qtd_creditos as "Qtd. Respostas",
coalesce(SEC_TO_TIME(sw019.DURACAO),"") as "<PT>Duração</PT><EN>Duration</EN>",
sw019.DATA_INICIO as "<PT>Início Coleta</PT><EN>Start Date/Time</EN>",
sw019.DATA_FIM as "<PT>Fim Coleta</PT><EN>End Date/Time</EN>",
sw026.nome as "Entrevistador",
sw019.GPS_LATITUDE as "GPS LATITUDE",
sw019.GPS_LONGITUDE as "GPS LONGITUDE",
sw008.DESCRICAO as "<PT>Localidade</PT><EN>Locality</EN>",
sw031.DESCRICAO as "Status",
sw019.NOME as "Entrevistado",
sw019.CIDADE,
sw019.BAIRRO,
sw019.ENDERECO,
sw019.TELEFONE,
sw019.EMPRESA,
sw019.CRIADO_EM as  "Data/Hora Envio",
sw019.LOTE_ENVIO_SIAPDROID as  "LOTE_ENVIO_SIAPDROID",
sw019.questionario_numero_coleta as "Quest Coleta Num",
sw019.GERADO_POR as  "Gerado No",
sw019.CODIGO as "CODIGO",
sw019.ID as  "id"
from sw019     /* Tabela de */
left join sw008 on (sw019.sw008_id = sw008.id)
join sw031 on (sw019.sw031_codigo = sw031.codigo)
left join sw026 on (sw019.sw026_id = sw026.id)
where SW019.SW006_ID = '<<CONTRATO>>' <<FILTRO>> order by  sw019.questionario_numero desc limit 10000

Notar que temos também o parser de palavras chaves como:

<<EMPRESA>>
<<CONTRATO>>
<<EMPRESA_GRUPO>>
<<USUARIO>>
<<USUARIO_ID>>
<<DATA_ATUAL>>
<<DATA>>
<<ONTEM>>
<<AGORA>>

Outro detalhe é que se você desejar que a consulta não obedeça ao limite pré estabelecido de total de linhas retornável, por exemplo, se a consulta for aberta a partir de um processo, basta colocar o limit no SQL com o valor que desejar como no exemplo do código sql acima.