0

为简化起见,有两个表格“交易”和“汇率”。

trades.useridrates.fee通过trades.rateid=rates.rateid

问题是 SELECT 不会返回唯一的值,但它们都是可能的。

SELECT r.fee
FROM rates AS r
LEFT JOIN trades AS t
ON r.rateid = t.rateid
WHERE t.userid=(somevalue)

DISTINCT或者TOP 1由于订购混乱,这里无法选择。这里不需要订购。

如何选择正确和独特?

我只是想rates.fee通过给定trades.rateid一些来选择合适的trades.userid

trades
------
userid rateid total
101    1      
101    1
101    2
101    1

rates
-----
rateid fee
1      0.90
2      0.80
3      0.70

UPDATE trades
    SET total = (someformula) * (above SELECT query goes here)
    WHERE userid = (somevalue)

谢谢你。

4

1 回答 1

1

如果特定交易只有一个汇率,您可以使用update ... fromT-SQL 构造:

UPDATE  t
SET     total = (someformula) * r.fee
FROM    trades AS t
JOIN    rates AS r
ON      r.rateid = t.rateid
WHERE   t.userid = (somevalue)

如果rateid没有唯一标识费率,则应编辑问题以阐明应选择的费率。

于 2012-07-16T05:36:55.767 回答