Fórum funciona no interbase, mas não funciona no FireBird #37598

25/07/2003

0

Até agora não tive problemas de compatibilidade entre o Interbase e o Firebird, porém ao migrar um sistema do Interbase para o Firebird deu a mensagem:

invalid column reference

Pude reparar que foi no group by. Se eu uso a função sum(), Max(), avg(), funciona perfeitamente, mas se é um select acontece o problema (e só acontece no FireBird).

A pergunta é: Como posso contornar este problema sem usar uma stored procedure?

o código é o seguinte:

SELECT P.COD_PRODUTO,
PC.COD_COR,
GP.COD_GRADE,
IG.COD_ITEM_GRADE,
( SELECT SUM(QT_REAL)
FROM PRODUTOS_ESTOQUES PE
WHERE PE.COD_PRODUTO = P.COD_PRODUTO AND
PE.COD_COR = PC.COD_COR AND
PE.COD_GRADE = IG.COD_GRADE AND
PE.COD_ITEM_GRADE = IG.COD_ITEM_GRADE )
FROM PRODUTOS P LEFT JOIN PRODUTOS_CORES PC ON P.COD_PRODUTO = PC.COD_PRODUTO
LEFT JOIN GRADES_PRODUTOS GP ON P.COD_PRODUTO = GP.COD_PRODUTO
LEFT JOIN ITENS_GRADES IG ON GP.COD_GRADE = IG.COD_GRADE
GROUP BY P.COD_PRODUTO,
PC.COD_COR,
GP.COD_GRADE,
IG.COD_ITEM_GRADE


Fsflorencio

Fsflorencio

Responder

Posts

25/07/2003

Afarias

só um chute, vc já tentou:

{...}
( SELECT SUM(PE.QT_REAL) /* repare o PE em QT_REAL */
FROM PRODUTOS_ESTOQUES PE
{...}


T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar