0
SELECT a.id, a.username, a.email, a.created, b.user_id, 
    SUM( (b.price >500) +100 ) + SUM( b.price ) AS gr, SUM( b.price ) AS pris,
     b.created, c.user_id, c.referrer_id, c.created, d.id, d.beginner, d.winner_id
FROM users a, accounts b, referrals c, product d
WHERE a.created
BETWEEN  '2013-05-01'
AND  '2013-05-31'
AND a.id = b.user_id
AND a.id = c.user_id
AND d.beginner !=  '1'
AND d.winner_id = a.id
GROUP BY c.referrer_id
ORDER BY  `pris` ASC 
LIMIT 0 , 3

このクエリを作成しました。これで解決したい問題は、

SUM(( b.price >500) +100) + SUM( b.price ) AS gr

1 つの ID の合計価格が 1 か月で 500 を超える場合、100 を追加するように計算したいのですが、このクエリで 1 人の合計価格をどのようにカウントし、カウントがそれ以上の場合は 100 を追加する必要があるか正確にはわかりません。 1ヶ月で500以上?

4

3 に答える 3

1

ここで CASE ステートメントを使用できます

SUM( CASE WHEN b.price >500 THEN b.price+100 ELSE b.price END) as gr
于 2013-06-03T16:07:07.290 に答える