Autor Tópico: consulta com variável global [Resolvido]  (Lida 317 vezes)

Alexandre Copetti

  • Novato
  • *
  • Mensagens: 22
    • Email
consulta com variável global [Resolvido]
« Online: Setembro 30, 2015, 08:32:20 am »
bom dia

estou tentando fazer uma aplicação consulta de um jeito que não tinha feito antes
essa consulta é para ser acessada através de outra consulta por ligação de campo

SELECT
ctp.data,
ctp.numero,
ctp.docto,
ctp.id_ent,
detnatureza.valor,
ctp.status,
detnatureza.cod_ccusto,
detnatureza.id_natureza

FROM
gestao.detnatureza INNER JOIN gestao.ctp ON (detnatureza.id_origem :: integer) = ctp.id_ctp
INNER JOIN ast.custo_nat ON detnatureza.id_natureza = custo_nat.id_nat
INNER JOIN ast.custo_conta ON custo_nat.id_conta = custo_conta.codigo

WHERE
(ctp.data BETWEEN '[var_dataini]' and '[var_datafim]') 
and detnatureza.cod_ccusto = '[var_custo]'
and custo_conta.id = '[var_conta]'

union all

SELECT
req.data,
req.numero::varchar,
reqd.id_produto::varchar,
reqd.qtdade,
reqd.valor,
reqd.vl_total,
reqd.cod_ccusto,
reqd.id_natureza

FROM
gestao.req INNER JOIN gestao.reqd ON req.id_req = reqd.id_req
INNER JOIN ast.custo_nat ON reqd.id_natureza = custo_nat.id_nat
INNER JOIN ast.custo_conta ON custo_nat.id_conta = custo_conta.codigo

WHERE
(req.data BETWEEN '[var_dataini]' and '[var_datafim]')
and reqd.cod_ccusto = '[var_custo]'
and custo_conta.id = '[var_conta]'


usando variaveis globais e o termo union

mais nos testes que fiz, quando coloco uma variavel global ele me da o erro:
Invalid argument supplied for foreach() | Script: /opt/NetMake/v8/wwwroot/scriptcase/devel/compat/nm_select_atualiza.php linha: 154

e me diz que Faltou marcar campos que devem fazer parte da Consulta
só que fico sem sem um campo para selecionar

eu já havia visto pessoas fazendo esse tipo de consulta, mais não consigo descobrir onde estou errando

Obrigado
« Última modificação: Setembro 30, 2015, 04:44:35 pm por Alexandre Copetti »

Rodrigo Goulart Padovezzi

  • Expert
  • *****
  • Mensagens: 1045
    • Email
Re:consulta com variável global
« Responder #1 Online: Setembro 30, 2015, 11:15:33 am »
Bom isso realmente funciona porém se fizer uma alteração no SQL dará erro.
Eu parei de usar dessa forma por conta desses erros, monta uma Storage Procedure e passe os parâmetros.

Alexandre Copetti

  • Novato
  • *
  • Mensagens: 22
    • Email
Re:consulta com variável global
« Responder #2 Online: Setembro 30, 2015, 04:44:07 pm »
para deixar registrado para a galera que tiver a mesma duvida

a melhor maneira de resolver essa questão é criando uma view com a regra se a clausula where
e depois no scriptcase fazer o where com as variáveis globais tranquilo