[firebase-br] Select coomplicado. Help!

Erick Phillipe R. de Almeida ephilliperj em yahoo.com.br
Qua Out 12 08:19:47 -03 2005


O Select abaixo visa trazer os últimos preços aplicados e armazenados em um 
histórico de preços. Existe alguma forma de dinamizar este select, ou mesmo 
escrevê-lo de forma mais simples?

SELECT CPH.ID_PRECO,
       CPH.ID_PRODUTO,
       CPH.ID_EMPRESA,
       CP.DESCRICAO,
       (SELECT FIRST 1 CPH2.VL_PRECO
        FROM CAIXA_PRECOS_HISTORICO CPH2
        WHERE (CPH2.ID_PRODUTO = :ID_PRODUTO) AND
              (CPH2.ID_EMPRESA = :ID_EMPRESA) AND
              (CPH2.ID_PRECO = CPH.ID_PRECO) AND
              (CPH2.DT_REFERENCIA <= CURRENT_TIMESTAMP) AND
              (CPH2.ST_EXCLUIDO = 0)
        ORDER BY CPH2.DT_REFERENCIA DESC) AS "VL_PRECO",

       (SELECT FIRST 1 CPH2.DT_REFERENCIA
        FROM CAIXA_PRECOS_HISTORICO CPH2
        WHERE (CPH2.ID_PRODUTO = :ID_PRODUTO) AND
              (CPH2.ID_EMPRESA = :ID_EMPRESA) AND
              (CPH2.ID_PRECO = CPH.ID_PRECO) AND
              (CPH2.DT_REFERENCIA <= CURRENT_TIMESTAMP) AND
              (CPH2.ST_EXCLUIDO = 0)
        ORDER BY CPH2.DT_REFERENCIA DESC) AS "DT_REFERENCIA"
FROM CAIXA_PRECOS_HISTORICO CPH
LEFT JOIN CAIXA_PRECOS CP ON (CP.ID= CPH.ID_PRECO)
WHERE (CPH.ID_PRODUTO = :ID_PRODUTO) AND
      (CPH.ID_EMPRESA = :ID_EMPRESA) AND
      (CPH.DT_REFERENCIA <= CURRENT_TIMESTAMP) AND
      (CPH.ST_EXCLUIDO = 0)
GROUP BY 1, 2, 3, 4 







Mais detalhes sobre a lista de discussão lista