0

Wordpress の meta_values に基づいて Yield を計算しようとしていますが、以下の MySQL ステートメントを使用していますが、機能していません。SUM(returned.meta_value+staked.meta_value)-SUM(staked.meta_value))/SUM(staked.meta_value))*100) は値を返しません。

以下の表現のどこが間違っているのか、誰か助けてくれませんか。

ありがとうございました。

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
    ) );
4

1 に答える 1

0

あなたのクエリは意味がありません。このselectステートメントは、エイリアスbalanceとを使用していますbet。この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 
于 2013-04-22T14:31:37.153 に答える