Fórum Recuperar resultado de uma SP em um Select #40356

26/11/2003

0

Galera, bom dia!!!

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

Aledeol

Responder

Posts

26/11/2003

Afarias

vc tem que jogar os valores do select no(s) parametro(s) e/ou variável(is) com o INTO

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+


Responder

Gostei + 0

27/11/2003

Aledeol

Meu amigo, acho q não fui claro. Ou não estou entendendo a sua resposta

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


Responder

Gostei + 0

27/11/2003

Afarias

|Meu amigo, acho q não fui claro. Ou não estou entendendo a sua
|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+


Responder

Gostei + 0

28/11/2003

Aledeol

Agora entendi.

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


Responder

Gostei + 0

28/11/2003

Afarias

|Para poder usar uma SP dentro de uma Query(Select), eu tenho q usar o
|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+


Responder

Gostei + 0

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

Aceitar