Fórum Duvida Select #52337
19/08/2005
0
Olá,
Estou Delphi com Firebird através do DBExpress ... bom, tenho o seguinte select:
SELECT
PRO.PRONUM,
CLI.AGENOM AS AGECLINOM,
AUT.AGENOM AS AGEAUTNOM,
REU.AGENOM AS AGEREUNOM,
PRO.PROVAL,
(SELECT FIRST (1) A2.APRDAT FROM ANDAMENTOSPROCESSO A2 WHERE A2.PROCOD = PRO.PROCOD AND A2.APRSTA <> ´INA´ AND A2.APRSTACLI = ´S´ ORDER BY A2.APRDAT DESC) AS APRDAT,
(SELECT FIRST (1) A2.APRDES FROM ANDAMENTOSPROCESSO A2 WHERE A2.PROCOD = PRO.PROCOD AND A2.APRSTA <> ´INA´ AND A2.APRSTACLI = ´S´ ORDER BY A2.APRDAT DESC) AS APRDES,
VAR.VARDES,
JUS.JUSDES,
TAC.TACDES,
CID.CIDNOM,
CID.CIDUF,
PRO.PROCOD,
PRO.PROEXTARQ
FROM PROCESSO PRO
INNER JOIN AGENTES CLI ON
PRO.AGECODCLI = CLI.AGECOD
INNER JOIN AGENTES AUT ON
PRO.AGECODAUT = AUT.AGECOD
INNER JOIN AGENTES REU ON
PRO.AGECODREU = REU.AGECOD
LEFT JOIN VARAS VAR ON
VAR.VARCOD = PRO.VARCOD
LEFT JOIN JUSTICA JUS ON
JUS.JUSCOD = PRO.JUSCOD
LEFT JOIN TIPO_ACAO TAC ON
TAC.TACCOD = PRO.TACCOD
LEFT JOIN CIDADES CID ON
CID.CIDCOD = PRO.COMCOD
WHERE (PRO.PROEXTARQ = ´N´ OR PRO.PROEXTARQ IS NULL)
GROUP BY PRO.PRONUM, CLI.AGENOM, AUT.AGENOM, REU.AGENOM, PRO.PROVAL, VAR.VARDES, JUS.JUSDES, TAC.TACDES, CID.CIDNOM, CID.CIDUF, PRO.PROCOD, PRO.PROEXTARQ
ORDER BY 2
--------------------------------------------------------------------------
Quando rodo ele pelo IbExpert ele retorna ordenado corretamente pelo campo 2, porém quando ele é executado pelo delphi e apresentado no em um DBGrid, vem ordenado pelo campo 6 e depois o 2 ... não sei o que acontece ... eu simplismente pego o select gerado e copio para o ibexpert, e verifiquei tbm que nenhum evento ocorre depois da execução do select
Grato
Estou Delphi com Firebird através do DBExpress ... bom, tenho o seguinte select:
SELECT
PRO.PRONUM,
CLI.AGENOM AS AGECLINOM,
AUT.AGENOM AS AGEAUTNOM,
REU.AGENOM AS AGEREUNOM,
PRO.PROVAL,
(SELECT FIRST (1) A2.APRDAT FROM ANDAMENTOSPROCESSO A2 WHERE A2.PROCOD = PRO.PROCOD AND A2.APRSTA <> ´INA´ AND A2.APRSTACLI = ´S´ ORDER BY A2.APRDAT DESC) AS APRDAT,
(SELECT FIRST (1) A2.APRDES FROM ANDAMENTOSPROCESSO A2 WHERE A2.PROCOD = PRO.PROCOD AND A2.APRSTA <> ´INA´ AND A2.APRSTACLI = ´S´ ORDER BY A2.APRDAT DESC) AS APRDES,
VAR.VARDES,
JUS.JUSDES,
TAC.TACDES,
CID.CIDNOM,
CID.CIDUF,
PRO.PROCOD,
PRO.PROEXTARQ
FROM PROCESSO PRO
INNER JOIN AGENTES CLI ON
PRO.AGECODCLI = CLI.AGECOD
INNER JOIN AGENTES AUT ON
PRO.AGECODAUT = AUT.AGECOD
INNER JOIN AGENTES REU ON
PRO.AGECODREU = REU.AGECOD
LEFT JOIN VARAS VAR ON
VAR.VARCOD = PRO.VARCOD
LEFT JOIN JUSTICA JUS ON
JUS.JUSCOD = PRO.JUSCOD
LEFT JOIN TIPO_ACAO TAC ON
TAC.TACCOD = PRO.TACCOD
LEFT JOIN CIDADES CID ON
CID.CIDCOD = PRO.COMCOD
WHERE (PRO.PROEXTARQ = ´N´ OR PRO.PROEXTARQ IS NULL)
GROUP BY PRO.PRONUM, CLI.AGENOM, AUT.AGENOM, REU.AGENOM, PRO.PROVAL, VAR.VARDES, JUS.JUSDES, TAC.TACDES, CID.CIDNOM, CID.CIDUF, PRO.PROCOD, PRO.PROEXTARQ
ORDER BY 2
--------------------------------------------------------------------------
Quando rodo ele pelo IbExpert ele retorna ordenado corretamente pelo campo 2, porém quando ele é executado pelo delphi e apresentado no em um DBGrid, vem ordenado pelo campo 6 e depois o 2 ... não sei o que acontece ... eu simplismente pego o select gerado e copio para o ibexpert, e verifiquei tbm que nenhum evento ocorre depois da execução do select
Grato
Roswel
Curtir tópico
+ 0
Responder
Posts
19/08/2005
Afarias
Pode ser q o DataSet q vc está usando esteja fazendo uma ordenação própria. Isso é comum com ClientDataSet por exemplo.
T+
T+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)