帮助SQL查询(向有条件的用户添加5%)

时间:2010-04-05 09:26:13

标签: sql mysql

我在查询方面遇到了一些困难,其目的是在当年为用户提供多个线程(称为CS)5%点“加注”。 我的关系模式如下所示:

Thread = (**threadid**, threadname, threadLocation)

threadoffering = (threadid, season, year, user)

user = (**name**, points)

然后,我需要检查:

WHERE thread.threadid = threadoffering.threadid AND where threadoffering.year AND threadoffering.season = currentDate AND where threadoffering.User > 1

然后5%提高TO user.points

我希望它能得到彻底的解释,但除此之外它是简短的文字:

对当前年份和季节中threadLocation CS中具有多个线程的所有用户提供5%的“积分提升”(总是动态的,例如现在是年份= 2010年,季节是=春季)。

我期待着你的回答

此致 埃米尔

1 个答案:

答案 0 :(得分:0)

这应该有效:

SELECT
    u.name,
    CASE WHEN (COUNT(*) > 1)
        THEN MIN(u.points) * 1.05
        ELSE MIN(u.points)
    END AS points
FROM
    threadoffering to inner join user u
        on to.user = u.name
WHERE
    to.year = @targetYear and to.season = @targetSeason
GROUP BY
    u.name