[firebase-br] Order By por outra tabela

Zottis bzottis em ig.com.br
Seg Abr 23 16:12:36 -03 2012


Pessoal, postei hoje uma mensagem que perguntava como fazer um order by de
outra tabela

Como não obtive resposta, estou fuçando para ver se consigo.

 

Tentei deste jeito: 

select c.COD_CLIENTE,           c.DATA_CAD,              c.COD_EMPRESA,
c.NOME_FANTASIA,        c.RAZAO_SOCIAL,

       c.NOME_MONTADO,          c.COD_CIDADE,            cd.cidade ,
c.COD_AREA_ATUACAO,     c.COD_TIPO_AREA,

       c.INICIO_CONTRATO,       c.FINAL_CONTRATO,        c.INTERVALO_COLETA,
c.TIPO_BOMBONA,         c.FORMA_PGTO,

       c.VALOR_KILO,            c.VALOR_KILO_EXCEDE,     c.LIMITE_KILO,
c.TAXA_RECOLHIMENTO,    c.BOMBONA,

       c.QTD_COLETAS,           c.COD_CLASSIF_RESIDUOS,  c.VALOR_MENSAL,
c.COD_CLIENTE_EMPRESA,  c.PROXIMA_COLETA,

       c.SERASA,                c.CENTRAL_COBRANCA,      c.BLOQUEADO,
c.INADIMPLENTE,         c.COM_NOTA_FISCAL,

       c.com_comodato,          c.contrato_retornado,    c.cod_master,
c.COD_DESTINO,

 

            (select Uf from Cidades where Cidades.Cod_cidade = C.Cod_cidade
) as UF,

            (select area from areas_atuacao where
areas_Atuacao.cod_area_atuacao = C.Cod_area_atuacao ) as Area_Atuacao,

            (select TIPO_AREA from TIPO_AREA where TIPO_AREA.cod_TIPO_area =
C.Cod_TIPO_area) as TIPO_Area, 

            (select  Classificacao from CLASSIF_RESIDUOS where
CLASSIF_RESIDUOS.COD_Classificacao = C.COD_CLASSIF_RESIDUOS) as
Classific_Resid, 

            (select min(FAR_mtr.DATA_COLETA) from FAR_MTR where
FAR_MTR.COD_CLIENTE = C.COD_Cliente) as Primeira_COLETA , 

            (select Max(FAR_MTR.DATA_COLETA) from FAR_MTR where
FAR_MTR.COD_Cliente = C.COD_Cliente) as Ultima_COLETA, 

            (select Count(*) from FAR_MTR where FAR_MTR.COD_CLIENTE =
C.COD_Cliente and far_mtr.baixado = 'N' ) as MTR_ABERTA,

            (select Count(*) from FAR_MTR where FAR_MTR.COD_CLIENTE =
C.COD_Cliente and far_mtr.cod_rota = :VarRota/*:VarRota_Atual*/) as MTR_ROTA

 

from Clientes c, rotas_cliente R, cidades cd, cidades_rota CR

  where c.DELETADO = 'N'

    and c.cod_cidade = cd.cod_cidade

    and c.cod_cliente = r.cod_cliente

    and CR.cod_rota  = R.cod_rota_nome

    and r.cod_rota_nome = :VarRota

    and c.ativo  = 'S'

order by CR.ordem

 

mas esta vindo na ordem errada

 

teria que alterar o plan?

 

E se sim, Como se altera?

Plano

PLAN (FAR_MTR INDEX (FK_FAR_MTR_CLIENTE, FK_FAR_MTR_ROTA))

PLAN (FAR_MTR INDEX (FK_FAR_MTR_CLIENTE))

PLAN (FAR_MTR INDEX (FK_FAR_MTR_CLIENTE))

PLAN (FAR_MTR ORDER FAR_MTR_IDX_DATA_COLETA INDEX (FK_FAR_MTR_CLIENTE))

PLAN (CLASSIF_RESIDUOS INDEX (PK_CLASSIF_RESIDUOS))

PLAN (TIPO_AREA INDEX (PK_TIPO_AREA))

PLAN (AREAS_ATUACAO INDEX (PK_AREAS_ATUACAO))

PLAN (CIDADES INDEX (PK_CIDADES))

PLAN (COMODATO INDEX (FK_COMODATO_CLI))

PLAN (COMODATO INDEX (FK_COMODATO_CLI))

PLAN (CTAREC INDEX (FK_CTAREC_CLIENTE))

PLAN (CTAREC INDEX (FK_CTAREC_CLIENTE))

PLAN (CTAREC INDEX (FK_CTAREC_CLIENTE))

PLAN (CTAREC INDEX (FK_CTAREC_CLIENTE))

PLAN (FAR_MTR INDEX (FK_FAR_MTR_CLIENTE))

PLAN (EMPRESA INDEX (PK_EMPRESA))

PLAN SORT (JOIN (R INDEX (FK_ROTAS_CLIENTE_ROTAS), C INDEX (PK_CLIENTES), CD
INDEX (PK_CIDADES), CR INDEX (UNQ_CIDADE_CIDADES_ROTA )))

 

Aqui =>CR INDEX (UNQ_CIDADE_CIDADES_ROTA ) Não teria que ser =>CR INDEX
(CIDADES_ROTA_IDX_ORDEM )?

 

Desde já agradeço

 




Mais detalhes sobre a lista de discussão lista