我试着让那些被随机选择的人得到一份奖金,实际上就是让他们的回报值加倍。
以下是我的架构:

    CREATE TABLE rewards (
        rewardId    INTEGER PRIMARY KEY,
        rewardType    VARCHAR(20),
        rewardValue    NUMERIC(6,2)
    );

    CREATE TABLE deposit (
        depositId    INTEGER PRIMARY KEY,
        depositDate    DATE,
        customerId    INTEGER NOT NULL REFERENCES Customers
    );

    CREATE TABLE transactions (
        transactionId    SERIAL PRIMARY KEY,
        depositId    INTEGER NOT NULL UNIQUE REFERENCES Orders,
        transactionAmount   NUMERIC(18,2)
    );

我的问题是:
    select distinct t.transactionId
    from transactions t join deposit d on t.depositId = d.depositId join
         rewards r on 2 * r.rewardValue <= t.transactionAmount;

我得到一些输出,这些输出只是一些反复重复的值。有人知道怎么解决这个问题吗?

最佳答案

在回答您的问题之前,您的加入似乎有问题。
如果您想找到符合奖励条件的交易
试试这个->

select distinct transactionId from
(select t.transactionId,r.rewardValue,t.transactionAmount
from transactions t join deposit d on t.depositId = d.depositId,rewards r ) tbl where  2*rewardValue <= transactionAmount

08-25 12:07