Fórum Query nao esta buscando todos valores na Consulta SQL #366426
25/11/2008
0
Bom dia pessoal,
Estou com uma dificuldade em um Consulta no banco de dados ORACLE, estou utilizando SQLQUERY (DELPHI 2007).
O problema é o seguinte: existe um SQL (abaixo) que funciona perfeitamente no PLSQL, (traz todos os resultados ), mas quando eu insiro o mesmo SQL na QUERY ela nao me traz todos os valores, alguem saberia me dizer se existe algum comando que a QUERY nao entende:
este é o SQL:
select a.cod_empresa||´-´||c.den_empresa as EMPRESA,
b.ies_tipo,
a.qtd_movto,
a.ies_tip_movto,
a.cod_operacao||´.´||b.den_operacao as OPERAÇÃO,
sum(case when b.ies_tipo=´S´ and a.ies_tip_movto=´N´ then qtd_movto when b.ies_tipo=´S´ and a.ies_tip_movto=´R´ then -qtd_movto else 0 end)as SAIDAS,
sum(case when b.ies_tipo=´E´ and a.ies_tip_movto=´N´ then qtd_movto when b.ies_tipo=´E´ and a.ies_tip_movto=´R´ then -qtd_movto else 0 end)as ENTRADAS,
a.cod_item,
a.cus_unit_movto_p,
a.cus_tot_movto_p
from estoque_trans a,
estoque_operac b,
empresa c
where a.cod_empresa = b.cod_empresa(+)
and b.cod_empresa = c.cod_empresa(+)
and c.den_empresa like ´VANGUARDA¬´
and b.ies_tipo<>´D´
and b.cod_empresa = ´06´
and b.ies_com_quantidade=´S´
and a.cod_operacao = b.cod_operacao
and a.cod_item like ´02.051.0011¬´
and a.dat_movto>=´01/01/2006´
group by
a.cod_empresa,
c.den_empresa,
a.qtd_movto,
a.cod_operacao,
b.den_operacao,
a.ies_tip_movto,
ies_tipo,
a.ies_tip_movto,
a.cod_item,
a.cus_unit_movto_p,
a.cus_tot_movto_p
(Funciona perfeitamente no PLSQL), mas quando eu insiro o mesmo o mesmo SLQ na QUERY ela nao me traz todos os valores como deveria:
with SQLQuery1 do
begin
ClientDataSet1.Close;
SQL.Clear;
SQL.Add(´select a.cod_empresa||´´-´´||c.den_empresa as EMPRESA, ´);
SQL.Add(´b.ies_tipo,´);
SQL.Add(´a.qtd_movto,´);
SQL.Add(´a.ies_tip_movto,´);
SQL.Add(´a.cod_operacao||´´.´´||b.den_operacao as OPERAÇÃO,´);
SQL.Add(´sum(case when b.ies_tipo=´´S´´ and a.ies_tip_movto=´´N´´ then qtd_movto when b.ies_tipo=´´S´´ and a.ies_tip_movto=´´R´´ then -qtd_movto else 0 end)as SAIDAS,´);
SQL.Add(´sum(case when b.ies_tipo=´´E´´ and a.ies_tip_movto=´´N´´ then qtd_movto when b.ies_tipo=´´E´´ and a.ies_tip_movto=´´R´´ then -qtd_movto else 0 end)as ENTRADAS,´);
SQL.Add(´a.cod_item,´);
SQL.Add(´a.cus_unit_movto_p,´);
SQL.Add(´a.cus_tot_movto_p´);
SQL.Add(´from estoque_trans a,´);
SQL.Add(´estoque_operac b,´);
SQL.Add(´empresa c´);
SQL.Add(´where a.cod_empresa = b.cod_empresa(+)´);
SQL.Add(´and b.cod_empresa = c.cod_empresa(+)´);
SQL.Add(´and c.den_empresa like ´´VANGUARDA¬´´ ´);
SQL.Add(´and b.ies_tipo<>´´D´´ ´);
SQL.Add(´and b.cod_empresa = ´´06´´ ´);
SQL.Add(´and b.ies_com_quantidade = ´´S´´ ´);
SQL.Add(´and a.cod_operacao = b.cod_operacao´);
SQL.Add(´and a.cod_item = ´´02.051.0011´´ ´);
SQL.Add(´and a.dat_movto>= ´01/01/2006 ´);
SQL.Add(´group by´);
SQL.Add(´a.cod_empresa,´);
SQL.Add(´c.den_empresa,´);
SQL.Add(´a.qtd_movto,´);
SQL.Add(´a.cod_operacao,´);
SQL.Add(´b.den_operacao,´);
SQL.Add(´a.ies_tip_movto,´);
SQL.Add(´b.ies_tipo,´);
SQL.Add(´a.ies_tip_movto,´);
SQL.Add(´a.cod_item,´);
SQL.Add(´a.cus_unit_movto_p,´);
SQL.Add(´a.cus_tot_movto_p´);
ClientDataSet1.Open;
end;
se alguem souber de alguma coisa ou se existe alguma comando que a QUERY nao reconhce e puder ajudar eu agradeço.
Estou com uma dificuldade em um Consulta no banco de dados ORACLE, estou utilizando SQLQUERY (DELPHI 2007).
O problema é o seguinte: existe um SQL (abaixo) que funciona perfeitamente no PLSQL, (traz todos os resultados ), mas quando eu insiro o mesmo SQL na QUERY ela nao me traz todos os valores, alguem saberia me dizer se existe algum comando que a QUERY nao entende:
este é o SQL:
select a.cod_empresa||´-´||c.den_empresa as EMPRESA,
b.ies_tipo,
a.qtd_movto,
a.ies_tip_movto,
a.cod_operacao||´.´||b.den_operacao as OPERAÇÃO,
sum(case when b.ies_tipo=´S´ and a.ies_tip_movto=´N´ then qtd_movto when b.ies_tipo=´S´ and a.ies_tip_movto=´R´ then -qtd_movto else 0 end)as SAIDAS,
sum(case when b.ies_tipo=´E´ and a.ies_tip_movto=´N´ then qtd_movto when b.ies_tipo=´E´ and a.ies_tip_movto=´R´ then -qtd_movto else 0 end)as ENTRADAS,
a.cod_item,
a.cus_unit_movto_p,
a.cus_tot_movto_p
from estoque_trans a,
estoque_operac b,
empresa c
where a.cod_empresa = b.cod_empresa(+)
and b.cod_empresa = c.cod_empresa(+)
and c.den_empresa like ´VANGUARDA¬´
and b.ies_tipo<>´D´
and b.cod_empresa = ´06´
and b.ies_com_quantidade=´S´
and a.cod_operacao = b.cod_operacao
and a.cod_item like ´02.051.0011¬´
and a.dat_movto>=´01/01/2006´
group by
a.cod_empresa,
c.den_empresa,
a.qtd_movto,
a.cod_operacao,
b.den_operacao,
a.ies_tip_movto,
ies_tipo,
a.ies_tip_movto,
a.cod_item,
a.cus_unit_movto_p,
a.cus_tot_movto_p
(Funciona perfeitamente no PLSQL), mas quando eu insiro o mesmo o mesmo SLQ na QUERY ela nao me traz todos os valores como deveria:
with SQLQuery1 do
begin
ClientDataSet1.Close;
SQL.Clear;
SQL.Add(´select a.cod_empresa||´´-´´||c.den_empresa as EMPRESA, ´);
SQL.Add(´b.ies_tipo,´);
SQL.Add(´a.qtd_movto,´);
SQL.Add(´a.ies_tip_movto,´);
SQL.Add(´a.cod_operacao||´´.´´||b.den_operacao as OPERAÇÃO,´);
SQL.Add(´sum(case when b.ies_tipo=´´S´´ and a.ies_tip_movto=´´N´´ then qtd_movto when b.ies_tipo=´´S´´ and a.ies_tip_movto=´´R´´ then -qtd_movto else 0 end)as SAIDAS,´);
SQL.Add(´sum(case when b.ies_tipo=´´E´´ and a.ies_tip_movto=´´N´´ then qtd_movto when b.ies_tipo=´´E´´ and a.ies_tip_movto=´´R´´ then -qtd_movto else 0 end)as ENTRADAS,´);
SQL.Add(´a.cod_item,´);
SQL.Add(´a.cus_unit_movto_p,´);
SQL.Add(´a.cus_tot_movto_p´);
SQL.Add(´from estoque_trans a,´);
SQL.Add(´estoque_operac b,´);
SQL.Add(´empresa c´);
SQL.Add(´where a.cod_empresa = b.cod_empresa(+)´);
SQL.Add(´and b.cod_empresa = c.cod_empresa(+)´);
SQL.Add(´and c.den_empresa like ´´VANGUARDA¬´´ ´);
SQL.Add(´and b.ies_tipo<>´´D´´ ´);
SQL.Add(´and b.cod_empresa = ´´06´´ ´);
SQL.Add(´and b.ies_com_quantidade = ´´S´´ ´);
SQL.Add(´and a.cod_operacao = b.cod_operacao´);
SQL.Add(´and a.cod_item = ´´02.051.0011´´ ´);
SQL.Add(´and a.dat_movto>= ´01/01/2006 ´);
SQL.Add(´group by´);
SQL.Add(´a.cod_empresa,´);
SQL.Add(´c.den_empresa,´);
SQL.Add(´a.qtd_movto,´);
SQL.Add(´a.cod_operacao,´);
SQL.Add(´b.den_operacao,´);
SQL.Add(´a.ies_tip_movto,´);
SQL.Add(´b.ies_tipo,´);
SQL.Add(´a.ies_tip_movto,´);
SQL.Add(´a.cod_item,´);
SQL.Add(´a.cus_unit_movto_p,´);
SQL.Add(´a.cus_tot_movto_p´);
ClientDataSet1.Open;
end;
se alguem souber de alguma coisa ou se existe alguma comando que a QUERY nao reconhce e puder ajudar eu agradeço.
Marlonnardi
Curtir tópico
+ 0
Responder
Posts
25/11/2008
Acacio
Bom pelo que eu vi o problema são os filtros. Tens que tirar eles e ir colocando um a um até que ache o problema. Outra coisa é que alguns campos são campos de caracteres e as vezes tem que colocar entre aspas. Tente colocar eles com a função quotedstr
Exemplo
´and a.cod_item like´ + quotedstr(´02.051.0011¬´)
Exemplo
´and a.cod_item like´ + quotedstr(´02.051.0011¬´)
Responder
Gostei + 0
25/11/2008
Marlonnardi
Vlw Acacio,
fui filtrando passo a passo e cheguei no and a.cod_item like´ + quotedstr(´02.051.0011¬´),
pimba!!! era isso mesmo, trouxe os valores que nao estava buscando..
obrigado
fui filtrando passo a passo e cheguei no and a.cod_item like´ + quotedstr(´02.051.0011¬´),
pimba!!! era isso mesmo, trouxe os valores que nao estava buscando..
obrigado
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)