ALTER Procedure wsp_getBLPTrFd_Trades
(
@sSecID varchar (50),
@sTraderName varchar (50),
@sID_BB varchar (12) = NULL,
@nCpn float = NULL,
@iSortCol int = 0,
@sSortDir varchar(4) = 'DESC'
)
AS
SET NOCOUNT OFF
IF @sSortDir = 'ASC' -- ASCENDING SORT ORDER (default)
BEGIN
SELECT t.iTrFdID, t.iTSN, t.iStartTrnNbr, t.sTraderName, t.sSecID, t.sBuySellFlag,
t.sTrnType, t.iTrRecType, t.nTradeAmt, t.dTradeDt, t.dSettleDt,
t.sID_BB, t.dMaturity, t.nPrice, p.nAvgPx, t.dLastUpdDt,
p.nRlzdPL, p.sTransDescr, t.iCancelled, c.sOurTrnCode
FROM dbo.tBLPTrFd t LEFT OUTER JOIN
dbo.tPLTrans p ON t.iTrFdID = p.iTrFdID LEFT OUTER JOIN
dbo.tBLPRcdTypes c ON t.iTrRecType = c.iRcdType
WHERE ((t.sSecID = @sSecID) OR (t.sID_BB = @sID_BB)) AND
(t.sTraderName = @sTraderName) AND ((@nCpn IS NULL) OR (t.nCpn = @nCpn))
ORDER BY
CASE @iSortCol -- SORT NUMERIC COLUMNS
WHEN 0 THEN t.iTrFdID
WHEN 1 THEN t.iTSN
WHEN 2 THEN t.iStartTrnNbr
WHEN 7 THEN t.iTrRecType
WHEN 8 THEN t.nTradeAmt
WHEN 13 THEN t.nPrice
WHEN 14 THEN p.nAvgPx
WHEN 16 THEN p.nRlzdPL
WHEN 18 THEN t.iCancelled
END ASC,
CASE @iSortCol -- SORT TEXT COLUMNS
WHEN 3 THEN t.sTraderName
WHEN 4 THEN t.sSecID
WHEN 5 THEN t.sBuySellFlag
WHEN 6 THEN t.sTrnType
WHEN 11 THEN t.sID_BB
WHEN 17 THEN p.sTransDescr
WHEN 19 THEN c.sOurTrnCode
END ASC,
CASE @iSortCol -- SORT DATE COLUMNS
WHEN 9 THEN t.dTradeDt
WHEN 10 THEN t.dSettleDt
WHEN 12 THEN t.dMaturity
WHEN 15 THEN t.dLastUpdDt
END ASC,
1 DESC
END
ELSE
BEGIN
SELECT t.iTrFdID, t.iTSN, t.iStartTrnNbr, t.sTraderName, t.sSecID, t.sBuySellFlag,
t.sTrnType, t.iTrRecType, t.nTradeAmt, t.dTradeDt, t.dSettleDt,
t.sID_BB, t.dMaturity, t.nPrice, p.nAvgPx, t.dLastUpdDt,
p.nRlzdPL, p.sTransDescr, t.iCancelled, c.sOurTrnCode
FROM dbo.tBLPTrFd t LEFT OUTER JOIN
dbo.tPLTrans p ON t.iTrFdID = p.iTrFdID LEFT OUTER JOIN
dbo.tBLPRcdTypes c ON t.iTrRecType = c.iRcdType
WHERE ((t.sSecID = @sSecID) OR (t.sID_BB = @sID_BB)) AND
(t.sTraderName = @sTraderName) AND ((@nCpn IS NULL) OR (t.nCpn = @nCpn))
ORDER BY
CASE @iSortCol -- SORT NUMERIC COLUMNS
WHEN 0 THEN t.iTrFdID
WHEN 1 THEN t.iTSN
WHEN 2 THEN t.iStartTrnNbr
WHEN 7 THEN t.iTrRecType
WHEN 8 THEN t.nTradeAmt
WHEN 13 THEN t.nPrice
WHEN 14 THEN p.nAvgPx
WHEN 16 THEN p.nRlzdPL
WHEN 18 THEN t.iCancelled
END DESC,
CASE @iSortCol -- SORT TEXT COLUMNS
WHEN 3 THEN t.sTraderName
WHEN 4 THEN t.sSecID
WHEN 5 THEN t.sBuySellFlag
WHEN 6 THEN t.sTrnType
WHEN 11 THEN t.sID_BB
WHEN 17 THEN p.sTransDescr
WHEN 19 THEN c.sOurTrnCode
END DESC,
CASE @iSortCol -- SORT DATE COLUMNS
WHEN 9 THEN t.dTradeDt
WHEN 10 THEN t.dSettleDt
WHEN 12 THEN t.dMaturity
WHEN 15 THEN t.dLastUpdDt
END DESC,
1 DESC
END
SET NOCOUNT ON