Hallo, why I not get first row in this procedure:
SET TERM ^ ; RECREATE PROCEDURE ESTRATTO_CONTO_prova ( CONTO Char(5), CLIENTE Smallint, DATADAL DATE, DATAAL date ) RETURNS ( ID Integer, DATA_REGISTRAZIONE Date, CAUSALE_ID Char(3), DATA_DOCUMENTO Date, NUMERO_DOCUMENTO Varchar(20), DESCRIZIONE_TESTA Varchar(120), DOC_TESTA_ID Integer, CONTO_ID Char(5), CLIFOR_ID Smallint, DARE CURRENCY_D, AVERE CURRENCY_D, SALDO CURRENCY_D, DESCRIZIONE_CORPO Varchar(120), PARTITA Integer, SCADENZA Date, DENOMINAZIONE Varchar(60), CAUSALE_DESCRIZIONE Varchar(80), CONTO_DESCRIZIONE Varchar(60) ) AS DECLARE VARIABLE SOMMA float; BEGIN SALDO = 0; FOR SELECT 0, /* PNT.ID, */ :DATADAL, /* PNT.DATA_REGISTRAZIONE, */ NULL, /* PNT.CAUSALE_ID, */ :DATADAL, /* PNT.DATA_DOCUMENTO, */ NULL, /* PNT.NUMERO_DOCUMENTO, */ NULL, /* PNT.DESCRIZIONE, */ null, /* PNT.DOC_TESTA_ID, */ null, /* PNC.CONTO_ID, */ null, /* IIF (PNC.CLIENTE_ID IS NOT NULL, PNC.CLIENTE_ID, PNC.FORNITORE_ID) AS "CLIFOR_ID", */ COALESCE(SUM(PNC.DARE), 0), COALESCE(SUM(PNC.AVERE), 0), COALESCE(SUM(PNC.DARE - PNC.AVERE), 0) + :SALDO, 'Riporto...', /* PNC.DESCRIZIONE, */ NULL, /* PNC.PARTITA, */ NULL, /* PNC.SCADENZA, */ NULL, /* IIF (PNC.CLIENTE_ID IS NOT NULL, C.DENOMINAZIONE, F.DENOMINAZIONE) as DENOMINAZIONE, */ NULL, /* TC.DESCRIZIONE, */ NULL /* PDC.DESCRIZIONE */ from PN_TESTA PNT JOIN PN_CORPO PNC on PNT.ID = PNC.PN_TESTA_ID LEFT JOIN CLIENTI C ON PNC.CLIENTE_ID = C.ID LEFT JOIN FORNITORI F ON PNC.FORNITORE_ID = F.ID LEFT JOIN TIPO_CAUSALI TC ON PNT.CAUSALE_ID = TC.ID LEFT JOIN PIANO_DEI_CONTI PDC ON PNC.CONTO_ID = PDC.ID WHERE PNC.CONTO_ID = :CONTO AND (((PNC.CLIENTE_ID IS NULL) AND (PNC.FORNITORE_ID IS NULL)) OR (IIF (PNC.CLIENTE_ID IS NOT NULL, PNC.CLIENTE_ID, PNC.FORNITORE_ID) = :CLIENTE)) AND DATA_REGISTRAZIONE < :DATADAL INTO :ID, :DATA_REGISTRAZIONE, :CAUSALE_ID, :DATA_DOCUMENTO, :NUMERO_DOCUMENTO, :DESCRIZIONE_TESTA, :DOC_TESTA_ID, :CONTO_ID, :CLIFOR_ID, :DARE, :AVERE, :SALDO, :DESCRIZIONE_CORPO, :PARTITA, :SCADENZA, :DENOMINAZIONE, :CAUSALE_DESCRIZIONE, :CONTO_DESCRIZIONE DO FOR SELECT PNT.ID, PNT.DATA_REGISTRAZIONE, PNT.CAUSALE_ID, PNT.DATA_DOCUMENTO, PNT.NUMERO_DOCUMENTO, PNT.DESCRIZIONE, PNT.DOC_TESTA_ID, PNC.CONTO_ID, IIF (PNC.CLIENTE_ID IS NOT NULL, PNC.CLIENTE_ID, PNC.FORNITORE_ID) AS "CLIFOR_ID", PNC.DARE, PNC.AVERE, PNC.DARE - PNC.AVERE + :SALDO, PNC.DESCRIZIONE, PNC.PARTITA, PNC.SCADENZA, IIF (PNC.CLIENTE_ID IS NOT NULL, C.DENOMINAZIONE, F.DENOMINAZIONE) as DENOMINAZIONE, TC.DESCRIZIONE, PDC.DESCRIZIONE from PN_TESTA PNT JOIN PN_CORPO PNC on PNT.ID = PNC.PN_TESTA_ID LEFT JOIN CLIENTI C ON PNC.CLIENTE_ID = C.ID LEFT JOIN FORNITORI F ON PNC.FORNITORE_ID = F.ID LEFT JOIN TIPO_CAUSALI TC ON PNT.CAUSALE_ID = TC.ID LEFT JOIN PIANO_DEI_CONTI PDC ON PNC.CONTO_ID = PDC.ID WHERE PNC.CONTO_ID = :CONTO AND (((PNC.CLIENTE_ID IS NULL) AND (PNC.FORNITORE_ID IS NULL)) OR (IIF (PNC.CLIENTE_ID IS NOT NULL, PNC.CLIENTE_ID, PNC.FORNITORE_ID) = :CLIENTE)) AND PNT.DATA_REGISTRAZIONE >= :DATADAL AND PNT.DATA_REGISTRAZIONE <= :DATAAL ORDER BY PNT.DATA_REGISTRAZIONE, PNT.ID, PNT.CAUSALE_ID, PNT.DATA_DOCUMENTO, PNT.NUMERO_DOCUMENTO INTO :ID, :DATA_REGISTRAZIONE, :CAUSALE_ID, :DATA_DOCUMENTO, :NUMERO_DOCUMENTO, :DESCRIZIONE_TESTA, :DOC_TESTA_ID, :CONTO_ID, :CLIFOR_ID, :DARE, :AVERE, :SALDO, :DESCRIZIONE_CORPO, :PARTITA, :SCADENZA, :DENOMINAZIONE, :CAUSALE_DESCRIZIONE, :CONTO_DESCRIZIONE DO SUSPEND; END^ SET TERM ; ^ If I run the select separately I obtain the right result per select. Thanks. -- Luigi Siciliano -------------------------- ------------------------------------ ------------------------------------ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Visit http://www.firebirdsql.org and click the Documentation item on the main (top) menu. Try FAQ and other links from the left-side menu there. Also search the knowledgebases at http://www.ibphoenix.com/resources/documents/ ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ------------------------------------ Yahoo Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/firebird-support/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/firebird-support/join (Yahoo! ID required) <*> To change settings via email: firebird-support-dig...@yahoogroups.com firebird-support-fullfeatu...@yahoogroups.com <*> To unsubscribe from this group, send an email to: firebird-support-unsubscr...@yahoogroups.com <*> Your use of Yahoo Groups is subject to: https://info.yahoo.com/legal/us/yahoo/utos/terms/