Re: [firebase-br] procedure simples dando dor de cabeça]
Hernando
mecanvpcusto em mecan.com.br
Ter Jan 18 15:06:39 -03 2005
mudei pra seguinte forma, mas o ibexpert me dá somente o resultado de
quantidade * peso, ou seja varios valores com essa multiplicação, mas eu
quero a somatoria dessas miltiplicações.deu pra entender?fb1.0
SELECT SUM (A.quantidade * B.peso) as pesotot
FROM COMPRODUTO
A left JOIN componente b ON (B.cdcomponente=A.cdcomponente)
WHERE IDPRODUTO=10003
Group By A.CDCOMPONENTE, A.QUANTIDADE, B.PESO
não deu certo deu a seguinte mensagem de erro, acho que faz sentido ter
dado erro pq estou dando select em 3 campos mas atribuindo a apenas uma
variavel, no caso o que me importa é somente o resultado do sum,.
count of column list and variable list do not match.
Dynamic SQL Error.
SQL error code = -313.
count of column list and variable list do not match.
Eliomar escreveu:
>1 - VC tem que criar seu campo de saida como
>numeric e não integer;
>
>2 - No final depois do group by tem que colocar o into :pesototal;
>
>copia o codigo abaixo e tenta rodar vamo ver se funciona como vc quer.
>
>CREATE PROCEDURE NEW_PROCEDURE (
> CDPRODUTO INTEGER)
>RETURNS (
> PESOTOTAL NUMERIC(18,3))
>AS
>begin
> SELECT A.CDCOMPONENTE,
> A.QUANTIDADE,
> B.PESO,
> SUM (A.quantidade * B.peso) as pesotot
> FROM COMPRODUTO as A
> left JOIN componente b ON (B.cdcomponente=A.cdcomponente)
> WHERE IDPRODUTO=:CDPRODUTO
> Group By A.CDCOMPONENTE,
> A.QUANTIDADE,
> B.PESO
> into :PESOTOTAL;
> suspend;
>end
>
>Agradecido.
>Eliomar,
>ICQ - 167715482
>Soft-Data Softwares Administrativos
>hptt://www.promediconet.com.br
>
>
>------------- Segue mensagem original! -------------
>
>De: Hernando <mecanvpcusto em mecan.com.br>
>Data: Tue, 18 Jan 2005 08:54:58 -0200
>Para: FireBase <lista em firebase.com.br>
>Assunto: [firebase-br] procedure simples dando dor de cabeça
>
>bom dia a todos da lista!
>
>estou tentando criar esta procedure simples, mas esta dando erro e não
>estou conseguindo identificar onde está o erro. se eu tirar o ponto e
>virgula da linha do select da erro na linha seguinte da variavel e se eu
>coloco o ponto e virgula da erro na linha do select. ibexpert/fb1.0
>
>CREATE PROCEDURE NEW_PROCEDURE (
> CDPRODUTO INTEGER)
>RETURNS (
> PESOTOTAL INTEGER)
>AS
>begin
>SELECT A.CDCOMPONENTE, A.QUANTIDADE, B.PESO, SUM (A.quantidade * B.peso)
>as pesotot FROM COMPRODUTO A left JOIN componente b ON
>(B.cdcomponente=A.cdcomponente) WHERE IDPRODUTO=
>:CDPRODUTO Group By A.CDCOMPONENTE, A.QUANTIDADE, B.PESO;
>:PESOTOTAL = PESOTOT;
>suspend;
>end
>
>
>
>
--
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.300 / Virus Database: 265.6.13 - Release Date: 16/01/2005
Mais detalhes sobre a lista de discussão lista