使用已获奖励的查询返回值

问题描述 投票:1回答:1

我正在尝试随机选择获得奖金的transactionId,这实际上只是让他们的奖励值加倍。

以下是我的架构:

    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;

我得到一些输出,只是一些重复的重复值。有谁知道如何解决这一问题?

sql postgresql
1个回答
0
投票

在回答你的问题之前,似乎你的加入有问题。如果你想找到有资格获得奖励的交易,试试这个 - >

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
© www.soinside.com 2019 - 2024. All rights reserved.