2013-04-22 55 views
0

我想根據Wordpress meta_values來計算產量,我使用下面的MySQL語句,該語句不工作。 SUM(returned.meta_value + staked.meta_value)-SUM(staked.meta_value))/ SUM(staked.meta_value))* 100)不返回任何值。MySQL中的產量計算

有人可以幫我解決下面的表達有什麼問題。

謝謝。

global $post; 
$post_author = $post->post_author; 
$post_status = 'publish'; 
$yield = $wpdb->get_var($wpdb->prepare(
    " 
    SELECT (ROUND((((SUM(returned.meta_value+staked.meta_value)-SUM(staked.meta_value))/SUM(staked.meta_value))*100),2),2) 
    FROM {$wpdb->posts} p 
    JOIN {$wpdb->users} u ON p.post_author = u.ID 
    LEFT JOIN {$wpdb->postmeta} staked 
     ON p.ID = staked.post_id AND staked.meta_key = 'staked' 
    LEFT JOIN {$wpdb->postmeta} returned 
     ON p.ID = returned.post_id AND returned.meta_key = 'returned' 
    WHERE p.post_author = %s AND p.post_status = %s 
    ", 
    $post_author, $post_status 
    )); 

回答

0

您的查詢沒有意義。 select聲明使用別名balancebetfrom子句具有別名pmposts

你的意思是?

SELECT (ROUND((((SUM(pm.meta_value+pm.meta_value)-SUM(pm.meta_value))/SUM(pm.meta_value))*100),2),2) 
FROM {$wpdb->postmeta} pm INNER JOIN 
    {$wpdb->posts} p 
    ON pm.post_id = p.ID 
WHERE pm.meta_key = %s AND pm.meta_key1 = %s AND p.post_author = %s AND 
     Month(p.post_date) = MONTH(CURRENT_DATE) AND p.post_status = %s 
+0

好的,我應該繼續在select語句中使用別名並更改from,反之亦然。返回和放樣是meta_keys,我想返回它們的值來計算收益率。請你幫忙嗎? – qebas 2013-04-22 14:40:05

+0

@qebas。 。 。在'select'語句中使用別名,只需將它們更改爲正確的別名即可。 – 2013-04-22 14:43:58

+0

我試着用上面的語句,它仍然不起作用,沒有返回值。 – qebas 2013-04-22 14:51:56