2013-04-22 2 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 문은 balancebet이라는 별칭을 사용하고 있습니다. from 절에는 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 문에서 별칭을 사용하고 그 반대로도 변경해야합니까? 반환 및 staked meta_keys 있으며 수익률을 계산하기 위해 자신의 값을 반환하고 싶습니다. 도와 주실 수 있습니까? – qebas

+0

@qebas. . . 'select' 문에서 앨리어스를 사용하고, 올바른 앨리어스로 변경하십시오. –

+0

위의 문장으로 시도했지만 여전히 작동하지 않습니다. 반환 된 값이 없습니다. – qebas