我有這樣的表,命名獎勵:MySQL的條件語法在SELECT
+----+------------+-----------+----------+-------------+
| id | product_id | sell_what | get_what | valid_until |
+----+------------+-----------+----------+-------------+
| 1 | 1001 | 10 | 10000 | 15 nov 2015 |
| 2 | 1002 | 7 | 12000 | 31 dec 2015 |
| 3 | 1003 | 12 | 100000 | 31 dec 2015 |
+----+------------+-----------+----------+-------------+
,而且我有這個表,命名user_earned:
+----+---------+------------+-----------+------------------+
| id | user_id | product_id | sell_what | transaction_date |
+----+---------+------------+-----------+------------------+
| 1 | 609 | 1003 | 1 | 2 Nov 2015 |
| 2 | 220 | 1001 | 12 | 3 Nov 2015 |
| 3 | 609 | 1003 | 1 | 20 Nov 2015 |
| 4 | 910 | 1001 | 2 | 21 Nov 2015 |
| 5 | 910 | 1001 | 3 | 21 Nov 2015 |
| 6 | 910 | 1001 | 8 | 22 Nov 2015 |
+----+---------+------------+-----------+------------------+
我也有這個疑問來總結sell_what
號基於user_id
:
SELECT user_id, product_id,
SUM(sell_what) AS sold,
MAX(transaction_date) AS transaction_date
FROM user_earned
GROUP BY user_id, product_id
和這裏的結果:
+---------+------------+-----------+------------------+
| user_id | product_id | sold | transaction_date |
+---------+------------+-----------+------------------+
| 220 | 1001 | 12 | 3 Nov 2015 |
| 609 | 1003 | 2 | 20 Nov 2015 |
| 910 | 1001 | 13 | 22 Nov 2015 |
+---------+------------+-----------+------------------+
現在,問題是...如何加入這一結果與表的獎勵,讓我得到了表是這樣的:
+---------+------------+-----------+-------------------+
| user_id | product_id | sold | remaining_balance |
+---------+------------+-----------+-------------------+
| 220 | 1001 | 12 | 2 |
+---------+------------+-----------+-------------------+
用戶609是不可見的,因爲他只有2級銷售的產品,而產品1003的最低報酬爲12
,因爲他的最新產品1001 TRANSACTION_DATE是2015年11月22日910用戶是不可見的,而獎勵有效期至11月15日2015年
如何應用這種合作nditional到一個SQL語法?謝謝。
1.存儲日期爲日期2.告訴我們earned_incentive – Strawberry
好吧,我想我得到了你想要... – Blag
什麼BTW:你有你的查詢時出現錯誤:' FROM earn_incentive',但是你在上面使用'user_earned'作爲表名... – Blag