Sql -gt; Pedidos Valor total dos pedidos
Salve!!!
Estou tentando mostrar em um dbGrid os ultimos pedidos realizados por determinado cliente. A base de dados que estou lendo esta DBF ( foxpro ) e estou usando o Delphi 7 com o ADO usando um driver da Microsoft. Meu sql esta assim:
E o erro que esta sendo retornado:
O provedor de dados ou outro serviço retornou status E_FAIL.
Eu acho que o problema esta nesta linha:
pois quando eu faço assim:
Informo um numero de pedido o sql funciona blzinha mas somando sempre o pedido com codigo 16711.
Alguem sabe onde estou errando?
Agradeço desde já.
Estou tentando mostrar em um dbGrid os ultimos pedidos realizados por determinado cliente. A base de dados que estou lendo esta DBF ( foxpro ) e estou usando o Delphi 7 com o ADO usando um driver da Microsoft. Meu sql esta assim:
select
top 10
ped.dat_dc1 as pedido_data,
ped.cod_dc1 as pedido_codigo,
fun.nom_fu1 as pedido_vendedor,
ped.pre_dc1 as pedido_pagamento,
cast(0 as float) as pedido_desconto,
(select sum((pedi.ppr_dc2 * pedi.pq1_dc2)) from ped_cl_2 pedi where pedi.cod_dc2 = ped.cod_dc1) as pedido_total
from ped_cl_1 ped
inner join funciona fun on (ped.fu1_dc1 = fun.cod_fu1)
where ped.cli_dc1 = ´29865´
order by ped.dat_dc1 desc
E o erro que esta sendo retornado:
O provedor de dados ou outro serviço retornou status E_FAIL.
Eu acho que o problema esta nesta linha:
(select sum((pedi.ppr_dc2 * pedi.pq1_dc2)) from ped_cl_2 pedi where pedi.cod_dc2 = ped.cod_dc1) as pedido_total
pois quando eu faço assim:
(select sum((pedi.ppr_dc2 * pedi.pq1_dc2)) from ped_cl_2 pedi where pedi.cod_dc2 = 16711) as pedido_total
Informo um numero de pedido o sql funciona blzinha mas somando sempre o pedido com codigo 16711.
Alguem sabe onde estou errando?
Agradeço desde já.
Mmoreira
Curtidas 0
Respostas
Motta
19/09/2006
Até onde saiba dbf não suporta sub-select.
Acho que vc terá de usar um campo calculado.
Acho que vc terá de usar um campo calculado.
GOSTEI 0
Mmoreira
19/09/2006
Um colega disse que é possivel fazer sub select com DBF mas tambem nao conseguiu detectar onde esta o problema.
De qualquer forma obrigado pela ajuda
De qualquer forma obrigado pela ajuda
GOSTEI 0
Mmoreira
19/09/2006
Fiz algumas alterações no Sql e agora nao esta dando mais o erro mas tambem nao esta somando corretamente o valor total do pedido ... esta repetindo o mesmo valor para todos os registros encontrados.
O que eu mudei?
Coloquei o nome da tabela completo:
Estou no aguardo!!!
select top 10 ped.dat_dc1 as pedido_data, ped.cod_dc1 as pedido_codigo, fun.nom_fu1 as pedido_vendedor, ped.pre_dc1 as pedido_pagamento, cast(0 as float) as pedido_desconto, (select sum((ppr_dc2 * pq1_dc2)) from ped_cl_2 where ped_cl_2.cod_dc2 = ped_cl_1.cod_dc1) as pedido_total from ped_cl_1 ped inner join funciona fun on (ped.fu1_dc1 = fun.cod_fu1) where ped.cli_dc1 = ´29865´ order by ped.dat_dc1 desc
O que eu mudei?
Coloquei o nome da tabela completo:
(select sum((ppr_dc2 * pq1_dc2)) from ped_cl_2 where ped_cl_2.cod_dc2 = ped_cl_1.cod_dc1) as pedido_total
Estou no aguardo!!!
GOSTEI 0