Fórum AJUDEM #458448
15/10/2013
0
Fiz um select, o qual no ib expert funciona, porém no delphi se eu tento adicionar os campos em um clientdataset gera o erro List Index Out Of Bounds (-1), segue abaixo meu Select
SELECT
VI.ID_MAN_ITENS, VI.ID_MANUT, VI.ID_PROD, VI.DESCRICAO,
VI.UNID, VI.QUANTIDADE, VI.UNITARIO, VI.TOTAL, VM.HODOMETRO,
VM.ID_MOTORISTA, VM.ID_FORN,
COALESCE((SELECT (VM.HODOMETRO-VMI.HODOMETRO)/VI.QUANTIDADE
FROM VEIC_MAN_ITENS V
LEFT JOIN VEIC_MANUT VMI ON VMI.ID_MANUT = V.ID_MANUT
WHERE (V.ID_MAN_ITENS<VI.ID_MAN_ITENS)
AND (V.ID_PROD = VI.ID_PROD)
ORDER BY V.ID_MAN_ITENS),0)
AS MEDIA
FROM
VEIC_MAN_ITENS VI
LEFT JOIN VEIC_MANUT VM ON VM.ID_MANUT = VI.ID_MANUT
WHERE (NOT VI.ID_MAN_ITENS IS NULL)
SELECT
VI.ID_MAN_ITENS, VI.ID_MANUT, VI.ID_PROD, VI.DESCRICAO,
VI.UNID, VI.QUANTIDADE, VI.UNITARIO, VI.TOTAL, VM.HODOMETRO,
VM.ID_MOTORISTA, VM.ID_FORN,
COALESCE((SELECT (VM.HODOMETRO-VMI.HODOMETRO)/VI.QUANTIDADE
FROM VEIC_MAN_ITENS V
LEFT JOIN VEIC_MANUT VMI ON VMI.ID_MANUT = V.ID_MANUT
WHERE (V.ID_MAN_ITENS<VI.ID_MAN_ITENS)
AND (V.ID_PROD = VI.ID_PROD)
ORDER BY V.ID_MAN_ITENS),0)
AS MEDIA
FROM
VEIC_MAN_ITENS VI
LEFT JOIN VEIC_MANUT VM ON VM.ID_MANUT = VI.ID_MANUT
WHERE (NOT VI.ID_MAN_ITENS IS NULL)
Supernaum
Curtir tópico
+ 0
Responder
Posts
15/10/2013
Supernaum
resolvi ficou assim
SELECT
VI.ID_MAN_ITENS, VI.ID_MANUT, VI.ID_PROD, VI.DESCRICAO,
VI.UNID, VI.QUANTIDADE, VI.UNITARIO, VI.TOTAL, VM.HODOMETRO,
VM.ID_MOTORISTA, VM.ID_FORN, VM.ID_VEIC,
(
(VM.HODOMETRO -
(COALESCE(
( SELECT FIRST 1 VMI.HODOMETRO
FROM VEIC_MAN_ITENS V
LEFT JOIN VEIC_MANUT VMI ON VMI.ID_MANUT = V.ID_MANUT
WHERE (V.ID_PROD = VI.ID_PROD)
AND (V.ID_MAN_ITENS<VI.ID_MAN_ITENS)
ORDER BY V.ID_MAN_ITENS DESC
),
( SELECT VEI.HODOMETRO
FROM VEICULOS VEI
WHERE (VEI.ID_VEIC=VM.ID_VEIC)
)
)
)
)/VI.QUANTIDADE
) AS MEDIA
FROM
VEIC_MAN_ITENS VI
LEFT JOIN VEIC_MANUT VM ON VM.ID_MANUT = VI.ID_MANUT
WHERE (NOT VI.ID_MAN_ITENS IS NULL)
SELECT
VI.ID_MAN_ITENS, VI.ID_MANUT, VI.ID_PROD, VI.DESCRICAO,
VI.UNID, VI.QUANTIDADE, VI.UNITARIO, VI.TOTAL, VM.HODOMETRO,
VM.ID_MOTORISTA, VM.ID_FORN, VM.ID_VEIC,
(
(VM.HODOMETRO -
(COALESCE(
( SELECT FIRST 1 VMI.HODOMETRO
FROM VEIC_MAN_ITENS V
LEFT JOIN VEIC_MANUT VMI ON VMI.ID_MANUT = V.ID_MANUT
WHERE (V.ID_PROD = VI.ID_PROD)
AND (V.ID_MAN_ITENS<VI.ID_MAN_ITENS)
ORDER BY V.ID_MAN_ITENS DESC
),
( SELECT VEI.HODOMETRO
FROM VEICULOS VEI
WHERE (VEI.ID_VEIC=VM.ID_VEIC)
)
)
)
)/VI.QUANTIDADE
) AS MEDIA
FROM
VEIC_MAN_ITENS VI
LEFT JOIN VEIC_MANUT VM ON VM.ID_MANUT = VI.ID_MANUT
WHERE (NOT VI.ID_MAN_ITENS IS NULL)
Responder
Gostei + 0
15/10/2013
Deivison Melo
Finalizando!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)