次の要件を持つ sql スクリプトを作成しています。この累計列は、Transaction_datetime が表示されている Asset_id の Transaction_datetime 以下であるすべての Asset_Transactions の Units を合計することによって計算されます。私はそれを達成しました、そしてそれはうまくいっていると思います。
ただし、私の 2 番目の要件は次のとおりです。
2) その日付の単位の値を計算します。これは、各 asset_transaction の日付とその特定の資産の Unit_Price テーブルから Sell_unitPrice を取得し、追加された単位数 (「現在の合計」) で乗算します。ステップ2で苦労しています
Sybase データベースのスキーマ リンクをクリックします--
これまでに書いたコード。
set nocount on
go
declare mla_exceptions scroll cursor for
select distinct mla.asset_id from asset_transaction mla
go
Print 'asset_id, Amount, Transaction Name, Total Units, Transaction Datetime'
declare @ml_asset double precision
open mla_exceptions
fetch first mla_exceptions
into @ml_asset
while (@@sqlstatus = 0)
begin
select mla.asset_id , ',',
-- mla.transaction_datetime, ',',
mla.amount, ',',
tt.name, ',',
(select sum (units) from asset_transaction where transaction_datetime <= mla.transaction_datetime and asset_id = @ml_asset and status = 'A' ) 'Running Total Units', ',',
transaction_datetime
from asset_transaction mla noholdlock
Left outer join transaction_type tt on tt.transaction_type_id = mla.transaction_type_id where mla.asset_id = @ml_asset
order by mla.asset_id
fetch next mla_exceptions
into @ml_asset
end
close mla_exceptions
deallocate cursor mla_exceptions
go