SQL - 循环遍历列表并使用sql select语句添加到变量

时间:2017-07-17 22:07:41

标签: sql loops

我在一个名为Trades的表中加载了数据。现在我需要查询此表,找到满足特定条件的元素并生成交易价值金额。 这是要求

TradeAmt = 0
Loop for all Trades 
{IF TradeId is 35 
  If type = 'I'
    ADD (TradeAmt =TradeAmt + col_TradeAmt )
else 
    ADD (TradeAmt = TradeAmt + col_TradeAmtOverlap )
END-IF}
Return TradeAmt

数据: Row1:tradeid = 35,type = I,col_TradeAmt = 10,col_TradeAmtOverlap = 20

Row2:tradeid = 35,type = S,col_TradeAmt = 30,col_TradeAmtOverlap = 40

输出:TradeAmt = 50

我如何使用SQL语句编写它。

1 个答案:

答案 0 :(得分:1)

好吧,在SQL中,你并没有真正循环一个序列。 您编写的语句描述了您希望从数据集中获取的内容(例如,交易表)。

在您的情况下,您希望以某种方式累积所有元素并提供累积结果,您可以通过使用像SUM这样的聚合函数来实现。

这些方面的某些内容可能会起作用。请注意,我在这里嵌套了两个查询,内部一个用于根据交易类型决定将哪个列作为“金额”进行处理,并且仅使用Id 35过滤交易,外部查询执行所有金额的总和:

SELECT SUM("Amount") FROM
(SELECT
CASE 
  WHEN Type = 'I' THEN col_TradeAmt
  ELSE col_TradeAmtOverlap
END "Amount"
FROM Trades
WHERE TradeId = 35) "TradeAmt";