-1
我有兩個表數據與多個條件
表:交易
id . user_id . amount . status
1 - - 100 -- --- 500 - ----- 1
2 - - 100 -- --- 100 - ----- 0
3 - - 110 -- --- 200 - ----- 1
4 - - 100 -- --- 220 - ----- 1
5 - - 117 -- --- 120 - ----- 1
6 - - 122 -- --- 300 - ----- 1
這意味着由用戶存款但僅狀態= 1有效
表: 活動
id . user_id . bid . status . budget . expense . size. priority
1 -- 100 ---- 80 --- 0 ------- 200 ------ 200 --- 5 -- 1
2 -- 109 ---- 75 --- 1 ------- 050 ------ 030 --- 2 -- 2
3 -- 100 ---- 65 --- 1 ------- 700 ------ 065 --- 2 -- 4
4 -- 107 ---- 77 --- 0 ------- 020 ------ 020 --- 2 -- 3
5 -- 90 ----- 87 --- 1 ------- 120 ------ 090 --- 7 -- 7
我需要運動的id由下面的濾波後(使用PHP和MySQL)
條件:
01. campaign.status = 1
02. campaign.size = 2
03. campaign.budget > campaign.expense
04. those user_id has balance (balance = A - B)
A = sum(transaction.amount where transaction.status=1)
B = sum(campaign.expense)
05. order by bid max value
預期輸出campaign.id = 3
for campaign.id 3 : status 1, size 2, budget 700 > expense 65
balance > 0 means for user_id 100 = A(500+220) > B(200+65) //means A-B = 455
我不那麼多專家。嘗試了幾種方法
請幫忙,解決後我會睡覺。失去2天。
*什麼*不工作?你有錯誤信息嗎? –
什麼是「資助」?我不明白你的條件 – Reeno
據我理解你,這應該工作:SELECT \t campaign.id FROM \t活動 JOIN \t交易ON transaction.user_id = campaign.user_id WHERE \t campaign.status = 1 AND \t campaign.size = 2且 \t campaign.budget> campaign.expense AND \t SUM(transaction.amount)> SUM(campaign.expense) ORDER BY \t campaign.bid DESC – Reeno