1
resposta

Error executing SQL statement for

Estou com essa coluna no banco de dados

ALTER TABLE organizacoes ADD modelo_tamanho_nota integer NOT NULL DEFAULT 1;
/* modelo_tamanho_nota = 1  nota pequena como é hoje /*
/* modelo_tamanho_nota = 2  nota grande /*

e quero adicionar ele no jasper, para so abrir quando ele for igual a 1, mas quando eu coloco ele da esse erro: Error executing SQL statement for

SELECT
    T.plano,
    T.codigo,
    T.nome,
    T.nota,
    T.data_vencimento,
    T.observacao,
    T.valor,
    T.recebido,
    T.arquivo,
    T.nome_arquivo,
T.carimbo,
T.modelo_tamanho_nota
FROM(
  SELECT 
p.id plano , 
p.codigo,
p.nome,  
v.id nota,
v.data_vencimento,
v.observacao, 
v.valor , 
v.valor recebido, 
documentos_contas_apagar.arquivo, 
v.nome_arquivo,
organizacoes.carimbo
  FROM   
  contas_apagar v 
  inner join plano_contas p on P.orga_id = v.orga_id and v.plan_id = p.id
  inner join organizacoes on organizacoes. id = p.orga_id
  inner join documentos_contas_apagar on documentos_contas_apagar.id_apagar=v.id
   where
 p.orga_id =  $P{orga_id} and v.data_pagamento between $P{inicio} and  $P{fim} 
and  v.usua_cancelamento is null
  union 
  select 
p.id plano , 
p.codigo,
p.nome,  
v.id nota,
v.data_vencimento,
v.observacao, 
v.valor , 
v.valor recebido, 
v.arquivo, 
v.nome_arquivo,
organizacoes.carimbo
  from 
  contas_apagar v 
  inner join plano_contas p on P.orga_id = v.orga_id and v.plan_id = p.id
  inner join organizacoes on organizacoes. id = p.orga_id
  where
 p.orga_id =  $P{orga_id} and v.data_pagamento between $P{inicio} and  $P{fim} 
  and organizacoes. modelo_tamanho_nota = '1' AND
  v.arquivo is not null and
  v.usua_cancelamento is null and
UPPER(right(v.nome_arquivo, 3)) not in ('PDF','TXT') 
  
)T
ORDER BY 

  T.codigo,
 T.data_vencimento
1 resposta

Olá, Fernando! Tudo bem com você?

Peço desculpa pela demora em responder o seu tópico.

Notei que você está tentando comparar um valor "inteiro" com uma "string" neste trecho do seu código SQL: organizacoes.modelo_tamanho_nota = '1'. Como modelo_tamanho_nota é um campo inteiro, você deve remover as aspas simples. O código correto seria: organizacoes.modelo_tamanho_nota = 1.

Além disso, observei que você está tentando selecionar a coluna modelo_tamanho_nota no início do seu comando SQL, mas essa coluna não está sendo selecionada nas consultas internas do seu comando SQL. Isso pode estar causando o erro, pois o SQL não consegue encontrar a coluna modelo_tamanho_nota no resultado. Para resolver isso, você deve incluir a coluna modelo_tamanho_nota nas suas consultas internas.

Lembre-se, é sempre uma boa prática verificar se os tipos de dados que você está comparando são os mesmos e se todas as colunas que você deseja selecionar estão presentes em todas as partes da sua consulta.

Espero que essas sugestões possam ajudar a resolver o problema. Caso tenha mais problemas ou dúvidas relacionadas com este tópico, estarei à disposição para ajudá-lo.

Grande abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software