私は2つのテーブルを持っています
表:取引
id . user_id . amount . status
1 - - 100 -- --- 500 - ----- 1
2 - - 100 -- --- 100 - ----- 0
3 - - 110 -- --- 200 - ----- 1
表:キャンペーン
id . user_id . bid . status . budget . expense . size
1 -- 100 ---- 80 --- 1 ------- 200 ------ 200 ---- 5 --
2 -- 109 ---- 75 --- 1 ------- 050 ------ 030 ---- 2 --
3 -- 100 ---- 65 --- 1 ------- 700 ------ 065 ---- 2 --
4 -- 107 ---- 77 --- 0 ------- 020 ------ 020 ---- 2 --
5 -- 90 ----- 87 --- 1 ------- 120 ------ 090 ---- 7 --
php と mysql を使用したフィルターの後に、campaign.id が必要です
条件: ユーザーから受け取った合計金額/トランザクションが、ユーザーの合計費用よりも多い場合。Money も承認済みのお金です (1 = 承認済み、0 = 保留中)。キャンペーンは手段 1 にあり、誰が最高額を入札したか
(sum(transaction.amount) WHERE transaction.status = 1 of that any user) > sum(campaign.expense of that user)
入札 = 最大 (入札)
キャンプ状態 = 1
1 ステップ ソリューション
mysql_query("SELECT campaign.* FROM campaign c,transaction t
WHERE budget>expense AND status='1' AND size='2'
ON c.user_id=t.user_id
HAVING SUM (CASE WHEN transaction.status=1 THEN transaction.amount ELSE 0 END) > SUM(campaign.expense)"));
動作していません
または、3つのステップで解決策がある場合-
最初のステップ
mysql_query("SELECT id,user_id FROM campaign
WHERE budget>expense AND status='1' AND size='2'")
2段目
keep id,user_id of 1st step WHERE SUM(transaction.amount status=1)
> SUM(campaign.expense)
3番目のステップ
mysql_query("SELECT id,user_id FROM campaign
WHERE step2 satisfied")
助けてください、解決したら寝ます