Показать сообщение отдельно
Старый 16.09.2003, 13:55   #4  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Должно работать.
PHP код:
static void Job4(Args _args)
{

    
Connection conn;
    
Statement Stmt;
    
ResultSet rslt;

    
int start_t;
    
LedgerTrans tblLedgerTrans;
    
InventTrans tblInventTrans;
    
//BSL_LockSPAccount tblLocksSP;

Str parseQuery()
{
    
Str SQLQuery "EXEC sp_BSL_Account20    ";

    
//SQLQuery +="'tst','01/02/2003','02/02/2003'";
    
SQLQuery +="'tst','20030201','20030202'";

    return 
SQLQuery;
}

    ;

    
//super();

    
start_t timenow();
    
conn = new UserConnection();
    
Stmt conn.createStatement();

    
ttsBegin;
        
//select forupdate tblLocksSP;
        //tblLocksSP.UserId = CurUserId ( );
        //tblLocksSP.insert();

        /*Âûçîâ ïðîöåäóðû*/
         
rslt Stmt.executeQuery(parseQuery());

         while(
rslt.next())
        {
           
info(strfmt("%1    %2     %3",rslt.getReal(1),rslt.getString(2),rslt.getString(3)) );
        }

    
//tblLocksSP.delete();
    
ttsCommit;
    
Stmt.close();
    
rslt.close();
    
info(strfmt("Çàòðà÷åíî âðåìÿ %1 ñ.",timenow()-start_t));


PHP код:
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

ALTER  PROCEDURE sp_BSL_Account20 
    
@dataAreaId         varchar(255), -- Компания для расчета
    
@fromDateVarchar     varchar(255), -- Дата начала (строкапериода расчета
    
@toDateVarchar         varchar(255) -- Дата конца (строкапериода расчета

AS

set nocount on
set ansi_warnings off

if object_id('BSL_Account20'is not null 
    DROP TABLE BSL_Account20

SELECT LEDGERTRANS
.ACCOUNTNUM,LEDGERTRANS.AMOUNTMSTLEDGERTRANS.TRANSDATELEDGERTRANS.VOUCHER
    (
SELECT MAX(InventTrans.TransRefId
    
FROM InventTrans 
    WHERE 
        InventTrans
.Voucher LedgerTrans.Voucher AND InventTrans.DateFinancial LedgerTrans.TransDate OR 
        
InventTrans.VoucherPhysical LedgerTrans.Voucher AND InventTrans.DatePhysical Ledgertrans.TransDate) AS Source
INTO BSL_Account20 
FROM LEDGERTRANS 
WHERE 
((LEDGERTRANS.ACCOUNTNUM ' 20.110' OR
LEDGERTRANS.ACCOUNTNUM ' 20.120' OR
LEDGERTRANS.ACCOUNTNUM ' 20.130' OR
LEDGERTRANS.ACCOUNTNUM ' 20.210' OR
LEDGERTRANS.ACCOUNTNUM ' 20.220' OR
LEDGERTRANS.ACCOUNTNUM ' 20.310' OR
LEDGERTRANS.ACCOUNTNUM ' 20.320' OR
LEDGERTRANS.ACCOUNTNUM ' 20.410' OR
LEDGERTRANS.ACCOUNTNUM ' 20.420')
AND (
LEDGERTRANS.TransDate <= @toDateVarchar
AND LEDGERTRANS.TransDate >= @fromDateVarchar))
AND (
LEDGERTRANS.DataAreaId = @dataAreaId)

CREATE INDEX i_AccountNum ON BSL_Account20 (AccountNum);
CREATE INDEX i_LedgerTrans ON BSL_Account20 (Source);

SELECT SUM (AmountMST) AS SumResultAccountNumSource FROM BSL_Account20 GROUP BY AccountNumSource