Fórum Recuperar resultado de uma SP em um Select #40356
26/11/2003
0
Fiz uma SP, que retorna um Param (pnumero) me dizendo q quantidade de produtos vendidos em determinada data, e está funcionando ok.
Agora eu preciso incluir o resultado desta SP em uma Query:
Select
FdtVenda,Sum(Fvalorvenda) as Valor,SP_Vendas(FdtVenda)
From
TabVendas
Where
FdtVenda Between :pdata1 and :pdata2
Só q não funciona.
Como fazer para recuperar o resultado de uma SP qualquer dentro de um select?
Ou tenho q criar uma Função?
Obrigado
Aledeol
Curtir tópico
+ 0Posts
26/11/2003
Afarias
ex:
select sum(FValorVenda) from TabVendas
where FDTVenda between :pdata1 and :pdata2
INTO :PNumero;
se o select pode retornar mais que 1 registro, vc deve fazer::
for select {...}
into do
suspend;
T+
Gostei + 0
27/11/2003
Aledeol
Possuo uma SP, onde eu entro com uma data e ela me retorna q qtd de vendas daquela data.
Dentro da minha app, se eu precisar rodar a sp sozinha(Execproc) eu consigo pegar o resultado q desejo. Mas agora eu gostaria de pegar o resultado desta SP dentro de uma Query(Select).
Desta forma:
Select
FdtVenda,Sum(FvalorVenda) as Valor,SP(FdtVenda)
from
minhatab
Esta query deveria retornar:
Data Valor Vendas
01/12/2002 500,00 10
02/12/2002 250,00 05
e assim em diante
E não funciona. Pq?
Eu não poderia usar o INTO, pois não se trata do resultado de uma SP e sim de uma Query.
Obrigado
Gostei + 0
27/11/2003
Afarias
|resposta
me parece q ambos ;)
|Dentro da minha app, se eu precisar rodar a sp sozinha(Execproc) eu
|consigo pegar o resultado q desejo. Mas agora eu gostaria de pegar o
|resultado desta SP dentro de uma Query(Select).
um STORED PROCEDURE só pode ser usado em SELECTS quando é utilizado SUSPEND para retornar os dados (veja o 2º exemplo q passei)
|Eu não poderia usar o INTO, pois não se trata do resultado de uma SP e
|sim de uma Query.
Ahh... vc quer usar um SP como uma função??? NO PODE!!
SP é SP, função é função!!! O máximo q vc pode fazer é::
select fdtVenda, sum(FvalorVenda) as Valor,
(select campo_tal from SP(FdtVenda)) as CampoTAL
from minhatab
*** NOTE que o SP tem q sempre retornar apenas 1 registro e vc deve usar o SUSPEND nele para que este registro seja retornado no SELECT.
T+
Gostei + 0
28/11/2003
Aledeol
Para poder usar uma SP dentro de uma Query(Select), eu tenho q usar o SUSPEND e retornar apenas um valor ok?
Obrigadão.... :o
Gostei + 0
28/11/2003
Afarias
|SUSPEND e retornar apenas um valor ok?
veja... para usar um SP com um SELECT vc *tem* que usar o SUSPEND
...mas *não* tem q retornar 1 só registro!!!
-- Quando eu disse q vc tem q retornar 1 só registro é para poder usar qualquer SELECT que vai funcionar como ´função´ para gerar valores de um ´campo´.
desculpe se não havia sido claro.
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)