sql

(Kézia) #1

Oi pessoal,

Eu preciso alterar o sql de uma consulta depois de submeter o filtro antes de gerar o gráfico. Alguém pode me auxiliar…

Att,

(leandroauler) #2

Kézia,

Explique melhor o que quer fazer…

(Kézia) #3

Oi…

Eu tenho um filtro, que depois de preenchido irá gerar um gráfico. A cláusula where do filtro precisa ser inserida na sql de geração do gráfico de uma forma diferente que o scripcase insere, com isto eu terei que alterar o sql dinamicamente. Quando eu preencher o filtro eu preciso enviar o where do filtro para o gráfico mas não estou conseguindo fazer isto.

Não sei se agora me expliquei melhor mas qualquer coisa me pergunta novamente que eu explico, ou então envio o sql para melhor compreensão.

Att,

(Kézia) #4

O sql que o scriptcase gera é o seguinte porém sem a parte grifada que é a gerada pelo filtro que eu tenho que inserir:

SELECT
COUNT(),
SUM(realizado) AS sum_realizado,
cod_pessoa_receptora,
comparativo
FROM (
SELECT
COUNT(
) AS realizado,
ca.cod_pessoa_receptora,
ca.cod_tipo_atendimento,
DATE(ca.data_atendimento) AS dt_atendimento,
‘realizado’ AS comparativo
FROM
cbs_atendimento AS ca
[glow=red,2,300]WHERE
ca.cod_tipo_atendimento = 1
AND DATE(ca.data_atendimento)
BETWEEN ‘2010-05-04’ AND ‘2010-05-06’[/glow]
GROUP BY
ca.cod_pessoa_receptora,
DATE(ca.data_atendimento)
UNION ALL
SELECT
cma.meta AS meta,
ca.cod_pessoa_receptora,
ca.cod_tipo_atendimento,
DATE(ca.data_atendimento) AS dt_atendimento,
‘meta’ AS comparativo
FROM
cbs_atendimento AS ca
INNER JOIN
cbs_meta_atendimento cma
ON cma.cod_tipo_atendimento = ca.cod_tipo_atendimento
AND cma.cod_pessoa = ca.cod_pessoa_receptora
[glow=red,2,300]WHERE
ca.cod_tipo_atendimento = 1
AND DATE(ca.data_atendimento) BETWEEN ‘2010-05-04’ AND ‘2010-05-06’[/glow]
GROUP BY
ca.cod_pessoa_receptora,
DATE(ca.data_atendimento)
) nm_sel_esp
WHERE
cod_tipo_atendimento = 1
AND dt_atendimento BETWEEN ‘2010-05-04’ AND ‘2010-05-06’
GROUP BY
cod_pessoa_receptora,
comparativo
ORDER BY
cod_pessoa_receptora ASC,
comparativo ASC

(leandroauler) #5

Kezia,

Tente o seguinte:

WHERE
ca.cod_tipo_atendimento = 1
AND ca.data_atendimento
BETWEEN ‘2010-05-04’ AND ‘2010-05-06’