[WordPress] WordPress DB の上の SQL クエリの「詳細設定」

スポンサーリンク

Question

私は”payment_settled”フィールドが 1 に等しい場合「合計」と呼ばれるカスタム フィールドの値を合計場所私のワードプレスのデータベースでクエリを実行しようとしています。さらに 1 ヶ月あたりの結果をグループ化したいと思います。今、私中途半端に試み下記参照してくださいよ、これが動作しない理由を理解する見当が並べ替えまたはいくつか他のウィザードリィ誰が知っているの入れ子になった select ステートメントを実行する必要がありますどのように実際に動作させる… と仮定できます。いずれかの方法を私は誰に永遠に感謝されることができる助けることができる…

SELECT SUM(meta_value) AS total, meta_key
FROM wp_postmeta AS PM
INNER JOIN wp_posts
ON PM.post_id = wp_posts.id
WHERE (PM.meta_key = 'total') 
AND (PM.meta_key = 'payment_settled' AND PM.meta_value = '1')
GROUP BY MONTH(wp_posts.post_date)

歓声、

ミカエル

答え

しないでくださいあなたが何をしようとしているが次を助けるべきである… を数える

SELECT  SUM(x.total) AS grandtotal FROM (
SELECT ID, total.meta_value AS total, payment_settled.meta_value AS payment_settled FROM
wp_posts 
LEFT OUTER JOIN
(SELECT post_id, meta_value FROM wp_postmeta WHERE meta_key='payment_settled') payment_settled
ON wp_posts.id=payment_settled.post_id
LEFT OUTER JOIN (SELECT post_id, meta_value, meta_key FROM wp_postmeta WHERE meta_key='total') total
ON wp_posts.id=total.post_id
) x WHERE x.total IS NOT NULL AND x.payment_settled='1'

それから投稿 ID でグループ化したいかどうか

SELECT x.ID, SUM(x.total) AS grandtotal FROM (
SELECT ID, total.meta_value AS total, payment_settled.meta_value AS payment_settled FROM
wp_posts 
LEFT OUTER JOIN
(SELECT post_id, meta_value FROM wp_postmeta WHERE meta_key='payment_settled') payment_settled
ON wp_posts.id=payment_settled.post_id
LEFT OUTER JOIN (SELECT post_id, meta_value, meta_key FROM wp_postmeta WHERE meta_key='total') total
ON wp_posts.id=total.post_id
) x WHERE x.total IS NOT NULL AND x.payment_settled='1'
GROUP BY x.ID

データの私の仮定が正しいなら簡単にあまりにも日付でグループ化する必要があります

SELECT  SUM(x.total),CONCAT( YEAR(x.post_date), '-', MONTH(x.post_date) ) AS grandtotal 
FROM (
SELECT ID, total.meta_value AS total, payment_settled.meta_value AS payment_settled, wp_posts.post_date 
FROM wp_posts 
LEFT OUTER JOIN
(SELECT post_id, meta_value FROM wp_postmeta WHERE meta_key='payment_settled') payment_settled
ON wp_posts.id=payment_settled.post_id
LEFT OUTER JOIN 
(SELECT post_id, meta_value, meta_key FROM wp_postmeta WHERE meta_key='total') total
ON wp_posts.id=total.post_id
) x 
WHERE x.total IS NOT NULL AND x.payment_settled='1' GROUP BY CONCAT( YEAR(x.post_date), '-', MONTH(x.post_date) 
)

http://stackoverflow.com/questions/27482898/advanced-sql-query-on-wordpress-db

スポンサーリンク

Leave a Reply