|
ActiveDelphi .: O site do programador Delphi! :.
|
Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
Enviada: Sex Ago 10, 2018 9:40 am Assunto: Busca por um campo especifico postgreSQL? |
|
|
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 |
|
|
imex Moderador
Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Sex Ago 10, 2018 11:05 am Assunto: |
|
|
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 |
|
|
adriano_servitec Colaborador
Registrado: Sexta-Feira, 30 de Janeiro de 2004 Mensagens: 17618
|
|
Voltar ao Topo |
|
|
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|