0
嗨我試圖查詢當前餘額,但它似乎顯示在最後的正確的平衡,但整體不正確。所以基本上計算是MySQL返回錯誤的值
IF狀態等於 '錯誤'
餘額=餘額 - 100
ELSE
餘額=餘額+(賠率* 100)
END
下面你看到我的當前查詢輸出:
Odds Status Date balance
1.70 | wrong | 2015-02-08 13:22:17 | 205
3.05 | correct | 2015-02-08 20:27:44 | 305
2.20 | correct | 2015-02-09 15:45:27 | 425
從我的計算餘額應爲
-100
205
425
那麼爲什麼不顯示呢?
SET @balance = 0;
SELECT odds.meta_value AS odds, stat.meta_value AS stats, posts.post_date as postdate,
CASE WHEN stat.meta_value = 'wrong'
THEN @balance := @balance -100
ELSE @balance := @balance + (odds.meta_value * 100)
END as balance
FROM wp_t3a673_posts posts
LEFT JOIN wp_t3a673_postmeta stat ON posts.ID = stat.post_id
AND stat.meta_key = 'status'
LEFT JOIN wp_t3a673_postmeta odds ON posts.ID = odds.post_id
AND odds.meta_key = 'odds'
LEFT JOIN wp_t3a673_term_relationships tr ON posts.ID = tr.object_id
LEFT JOIN wp_t3a673_term_taxonomy t ON tr.term_taxonomy_id = t.term_taxonomy_id
WHERE (
stat.meta_value = 'correct'
OR stat.meta_value = 'wrong'
)
AND posts.post_status = 'publish'
AND t.taxonomy = 'category'
AND (
t.term_id =4
OR t.term_id =5
OR t.term_id =6
)
ORDER BY posts.id
但這樣做修復它計算錯誤的錯誤?我不確定你想讓我改變什麼? – 2015-02-10 19:13:55
看起來更接近,看起來你使用變量求和的方式是「好」的方法。然而,這些聯合會爲重複值留下足夠的空間,但如果沒有數據集,很難說清楚。我會做一個查詢來列出所有數據,看看是否有多次添加任何內容。 – 2015-02-10 19:32:55
我在其他地方使用的差不多相同的查詢,它計數正確,它只是奇怪,它提供了正確的結果在結束425,但沒有在開始時顯示-100 – 2015-02-10 19:36:39