Olá Amigos,
Gostaria de Saber se alguém já fez uma ordenação por um item que não seja de banco de dados.
Ou seja, tenho um bloco base table. Onde recupero os registros
(não base tables) que são exibidos na tela através do post-query.
Sendo que eu preciso ordernar esses registros em ordem alfabetica.
Alguém por acaso já fez algo assim?
Grato!
Order by em coluna Não Base Table
- dr_gori
- Moderador
- Mensagens: 5024
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Cara, isso de forma automática, não tem como.
Mas tem uma forma de se fazer isso, mas é meio complicado. Terá que fazer vários testes.
* Cria uma tabela (pode ser uma Global Temprary Table). Ali, você coloca a PK da sua tabela original e um campo, que conterá o valor não base table.
* Depois, você monta seu bloco baseado numa clausula FROM, com join pra essa tabela, de modo que você possa recuperar esse campo NBT.
* Pra cada registro alterado (NBT) você faz um INSERT ou UPDATE nessa tabela GTT.
* Assim, você pode ordenar seu bloco por esse campo de outra tabela.
Isso é bem complicado de fazer, mas é possível sim.
Mas tem uma forma de se fazer isso, mas é meio complicado. Terá que fazer vários testes.
* Cria uma tabela (pode ser uma Global Temprary Table). Ali, você coloca a PK da sua tabela original e um campo, que conterá o valor não base table.
* Depois, você monta seu bloco baseado numa clausula FROM, com join pra essa tabela, de modo que você possa recuperar esse campo NBT.
* Pra cada registro alterado (NBT) você faz um INSERT ou UPDATE nessa tabela GTT.
* Assim, você pode ordenar seu bloco por esse campo de outra tabela.
Isso é bem complicado de fazer, mas é possível sim.
-
- Rank: Estagiário Sênior
- Mensagens: 12
- Registrado em: Qua, 01 Jun 2005 12:30 am
- Localização: RJ
Pois é cara, já tinha pensado nisso também. Mas por ser muito complicado desisti e também por questões de performance.
Queria saber se além dessa forma existia outra...
Mas está beleza, vlw pela ajuda.
Abs.
Queria saber se além dessa forma existia outra...
Mas está beleza, vlw pela ajuda.
Abs.
-
- Rank: Programador Pleno
- Mensagens: 41
- Registrado em: Seg, 31 Jul 2006 2:00 pm
- Localização: Blumenau - SC
Opa...
Cara tenta fazer o seguinte:
Na clausula ORDER BY do bloco, coloque o seguinte comando:
(SELECT <campo não base table> FROM <tabela de onde ele é buscado>
WHERE <campo que faz join com o bloco> = <bloco.campo de join>)
Exemplo
Tenho um bloco que possui o campo NRO_NFE que é não base table e busco ele da tabela NFE no
post-query e quero ordenar o bloco por ele.
Faço o seguinte na cláusula order by do bloco:
[]´s
Cara tenta fazer o seguinte:
Na clausula ORDER BY do bloco, coloque o seguinte comando:
(SELECT <campo não base table> FROM <tabela de onde ele é buscado>
WHERE <campo que faz join com o bloco> = <bloco.campo de join>)
Exemplo
Tenho um bloco que possui o campo NRO_NFE que é não base table e busco ele da tabela NFE no
post-query e quero ordenar o bloco por ele.
Faço o seguinte na cláusula order by do bloco:
(SELECT NRO_NFE FROM NFE
WHERE NRO_SEQ_NFE = LONFVE.NRO_SEQ_NFE)
-
- Rank: Estagiário Sênior
- Mensagens: 12
- Registrado em: Qua, 01 Jun 2005 12:30 am
- Localização: RJ
Cara isso deu certo pra você? Tentei fazer e não deu resultado.
Pelo seguinte motivo:
Não tem como referenciar nome de bloco na clausula order by do bloco.
O meu select do bloco e o seguinte:
No post_query recupero a sigla da regiao:
Sendo que as regiões retornam com a siglas desordenadas.
Então como você tinha falado coloquei na clausula order by do bloco o seguinte select:
Mas deu erro porque não posso fazer essa referencia dentro do order by.
Pelo seguinte motivo:
Não tem como referenciar nome de bloco na clausula order by do bloco.
O meu select do bloco e o seguinte:
SELECT COD_REGIAO,COD_LOCALD,COD_EMP FROM locald_regiao
SELECT sig_regiao,
nom_regiao
INTO :wrk_sig_regiao,
:wrk_nom_regiao
FROM regiao
WHERE cod_regiao = :blk_locald_regiao.cod_regiao
AND cod_tipo_regiao = 1;
Sendo que as regiões retornam com a siglas desordenadas.
Então como você tinha falado coloquei na clausula order by do bloco o seguinte select:
(SELECT sig_regiao FROM regiao WHERE cod_regiao=:blk_locald_regiao.cod_regiao)
-
- Rank: Programador Sênior
- Mensagens: 53
- Registrado em: Sex, 18 Mai 2007 11:52 am
- Localização: Descalvado
Olá!
Eu faço da seguinte forma:
Crio uma função de banco que recebe o código e retorna a descrição.
Algo assim:
Depois coloco a função no ORDER BY do bloco passando o código:
f_busca_descricao(codigo)
Sds
Eu faço da seguinte forma:
Crio uma função de banco que recebe o código e retorna a descrição.
Algo assim:
create or replace
function f_busca_descricao(p_codigo in number) return varchar2 is
v_retorno tabela.descricao%type;
begin
select descricao
into v_retorno
from tabela
where codigo= p_codigo;
return v_retorno;
exception
…
end f_busca_descricao;
f_busca_descricao(codigo)
Sds
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 10 visitantes