parametry
@user_id
int,
@numberSellStock
int,
@stock_name
varchar(10)
--pomocnicze
declare
@wallet_id
int
declare
@stock_id
int
declare
@stockN_id
int
declare
@stockPrice
money
--wyszukanie
portfela oraz akcji
select
@wallet_id
=
wal_id
from
UserTable
where
usr_id
=@user_id
select
@stockN_id
=
stockN_id
from
StockName
where
stockN_name
=
@stock_name
select
@stock_id
=
stock_id,
@stockPrice
=
stock_pricie
from
Stock
where
stockN_id
=
@stockN_id
--wyuszukanie
akcji uzytkownika, stan 'brak akcji' oraz ze zostaly zakupione
mark_transaction = 0
declare
@countStockInWallet
int
declare
@countStockInmarket
int
select
@countStockInmarket
=
sum(mark_numberOfShares)
from
MarketSquare
where
stock_id
=
@stock_id
and
wal_id
=
@wallet_id
and
bs_id
=
1
select
@countStockInWallet
=
wal_numberOfShares
from
Wallet
where
wal_id
=
@wallet_id
if(@numberSellStock
<=
@countStockInmarket)
begin
--transakcja
na rynek
INSERT
INTO
[dbo].[MarketSquare]
([stock_id],[wal_id],[mark_numberOfShares]
,[mark_aktywny],[mark_sharePriceBuy]
,[bs_id],[mark_sharePriceSell]
,[mark_dataStart],[mark_TransactionPrice])
VALUES
(@stock_id,@wallet_id,@numberSellStock,1,0,3,@stockPrice,GETDATE(),0)
--update
portfela zmniejszenie ilosc akcji
declare
@resultStock
int
set
@resultStock
=
@countStockInWallet
-
@numberSellStock
print
'ilosc
akcji po wystawienu na sprzedaz => '
+
CAST(@resultStock
as
varchar)
update
Wallet
set
wal_numberOfShares
=
@resultStock
where
wal_id
=
@wallet_id
end
else
begin
print
'za
mało akcjki w portfelu, zmniejsz liczbe'
end
END
Brak komentarzy:
Prześlij komentarz