ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Busca por um campo especifico postgreSQL?

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Ago 10, 2018 9:40 am    Assunto: Busca por um campo especifico postgreSQL? Responder com Citação

Tenho este select aqui
Código:
SELECT g.id_grade,
       p.id_classificacao,
       pf.caminho_imagem,
       p.id,
       CASE
           WHEN g.codigo_barra_pai = g.codigo_barra THEN CAST(p.descricao || '(Principal)' AS VARCHAR(255))
           ELSE CASE
                    WHEN g.id_grade_atributo_valor ISNULL
                         OR UPPER(g.id_grade_atributo_valor) = UPPER('NULL') THEN CAST(COALESCE(p.descricao, '') || ' - ' || COALESCE(ga.atributo, '') || ' - ' || COALESCE(gav.valor, '') AS varchar(255))
                    ELSE SPLIT_PART(CAST(COALESCE(p.descricao, '') || ' - ' || COALESCE(fn_get_descricao_grade_adr(g.id_grade_atributo_valor), '') AS VARCHAR(255)), ', ', 1) || ' - ' || SPLIT_PART(CAST(p.descricao || ' - ' || fn_get_descricao_grade_adr(g.id_grade_atributo_valor) AS VARCHAR(255)), ', ', 2)
                END
       END AS id_grade_atributo_valor,
       g.codigo_barra,
       TO_CHAR(g.valor_custo, 'R$ 999G999G990D99') AS valor_custo,
       CAST(TO_CHAR(g.valor_varejo_aprazo, 'R$ 999G999G990D99') AS VARCHAR(50)) AS valor_varejo_aprazo,
       TO_CHAR(g.valor_atacado_aprazo, 'R$ 999G999G990D99') AS valor_atacado_aprazo,
       TO_CHAR(g.qtd_atual, ' 999G999G990D99') AS qtd_atual,
       TO_CHAR(g.qtd_minima, ' 999G999G990D99') AS qtd_minima,
       CAST('p' AS varchar(7))AS alt_estoque,
       CASE
           WHEN g.codigo_barra_pai <> g.codigo_barra THEN CAST('W' AS varchar(7))
       END AS editar,
       CASE
           WHEN g.codigo_barra_pai <> g.codigo_barra THEN CAST('''' AS varchar(7))
       END AS excluir
FROM grade g
LEFT JOIN produto p ON p.id_cadastro = g.id_cadastro
AND (p.id = g.id_produto
     OR p.id_web = g.id_produto)
AND g.codigo_barra_pai = p.codigo_barra
LEFT JOIN classificacao c ON p.id_classificacao = c.id
LEFT JOIN unidade u ON p.id_unidade = u.id
LEFT JOIN grade_atributo_valor gav ON CAST(gav.id_grade_atributo_valor AS varchar(255)) = g.id_grade_atributo_valor
LEFT JOIN grade_atributo ga ON ga.id_grade_atributo = gav.id_atributo
LEFT JOIN produto_foto pf ON (p.id = pf.id_produto
                              AND pf.terminal = '604'
                              AND pf.caminho_imagem =
                                (SELECT MIN(pf.caminho_imagem)
                                 FROM produto_foto pf
                                 WHERE p.id = pf.id_produto))
WHERE c.show_comanda = '1'
  AND p.id_classificacao = '5735145'
 
  --AND UPPER(id_grade_atributo_valor) LIKE '%MAMINHA%'
 
ORDER BY id_grade_atributo_valor


Tem como buscar por este campo aqui
Citação:
--AND UPPER(id_grade_atributo_valor) LIKE '%MAMINHA%'


Do jeito que fiz da erro
ERROR: column reference "id_grade_atributo_valor" is ambiguous
LINE 44: AND UPPER(id_grade_atributo_valor) LIKE '%MAMINHA%'
^
********** Error **********

ERROR: column reference "id_grade_atributo_valor" is ambiguous
SQL state: 42702
Character: 2445


No caso ai falando em ambiguidade do campo, mais não sei ao certo o que é pois este ai esta em uma ALIAS
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Sex Ago 10, 2018 11:05 am    Assunto: Responder com Citação

Bom dia,

Não sei se entendi corretamente, mas se você quer que esse filtro funcione no campo id_grade_atributo_valor que é retornado pela query, então acho que uma alternativa seria utilizar uma CTE. Ex:

Código:
with CTE_Prep as
(
    query original sem o filtro no campo id_grade_atributo_valor
)

select * from CTE_Prep
where UPPER(id_grade_atributo_valor) LIKE '%MAMINHA%'


Espero que ajude


Editado pela última vez por imex em Dom Out 01, 2023 4:21 pm, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
adriano_servitec
Colaborador
Colaborador


Registrado: Sexta-Feira, 30 de Janeiro de 2004
Mensagens: 17618

MensagemEnviada: Sex Ago 10, 2018 4:19 pm    Assunto: Responder com Citação

imex escreveu:
Bom dia,

Não sei se entendi corretamente, mas se você quer que esse filtro funcione no campo id_grade_atributo_valor que é retornado pela query, então acho que uma alternativa seria utilizar uma CTE. Ex:

Código:
with CTE_Prep as
(
    query original sem o filtro no campo id_grade_atributo_valor
)

select * from CTE_Prep
where UPPER(id_grade_atributo_valor) LIKE '%MAMINHA%'


Espero que ajude


Deu certo muito obrigado Imex.
_________________
Jogo seu smartphone? Acesse o link e confira.
https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB