0
2つの異なる日付範囲でリクエストするためにMySQLに少し問題があります。2つの異なる日付範囲でリクエストする
私は2014年までnb_salesとlast_salesを持っているだけで、過去年間の度数する必要があります。
結果は、私が欲しい:1-3の最初の日付の範囲内にある
customer_id | nb_sales | last_sales | frequence
---------------------------------------------------------------
Customer ID | Sales make by | How many days| How many sales
| the customer | since the | has been made
| | last sales? | this year?
コラム:今日の2014
4列にはseconde日付範囲である:今日まで、Y-1
一時テーブルを作成し、度数を挿入
- :だから私はしようとしました
SELECT
CUSTOMER_ID、LEFT OUTER JOIN
最初のステップはOKですが、1秒間私がどんな結果やエラーメッセージが表示されていないとnb_sales、last_salesと度数 ...そして、私は一時テーブルをLEFT OUTER JOIN
したいとき、これは起こった:
LEFT OUTER JOIN tmp_frequence
ON tmp_frequence.client_id = sales_flat_order.customer_id
はたぶん、あなたはより良いアイデアを持っていますか?
CREATE TEMPORARY TABLE tmp_frequence (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
client_id INT,
frequence INT,
PRIMARY KEY (id)
);
INSERT INTO tmp_frequence (client_id, frequence)
SELECT sales_flat_order.customer_id, COUNT(sales_flat_order.entity_id)
FROM sales_flat_order
WHERE sales_flat_order.created_at BETWEEN '2014-05-22 00:00:00' and '2017-07-31 23:59:59'
GROUP BY sales_flat_order.customer_id;
/* ------------------------------ */
SELECT
-- * ,
sales_flat_order.customer_id customer_id,
COUNT(sales_flat_order.entity_id) nb_sales,
DATEDIFF("2017-07-31",DATE_FORMAT(MAX(sales_flat_order_item.created_at),"%Y-%m-%d")) last_sales,
tmp_frequence.frequence frequence
FROM adl_ec.sales_flat_order_item
LEFT OUTER JOIN sales_flat_order
ON sales_flat_order.entity_id = sales_flat_order_item.order_id
LEFT OUTER JOIN tmp_frequence
ON tmp_frequence.client_id=sales_flat_order.customer_id
WHERE sales_flat_order_item.created_at BETWEEN '2014-05-22 00:00:00' and '2017-07-31 23:59:59'
GROUP BY customer_id;
DROP TABLE tmp_frequence ;
私はあなたが何を意味知っていないため、本当にありがとうございますが、あなたの 'WHERE'節は' INNER JOIN'にあなたの 'LEFT JOIN'を変換されます。 'WHERE'節は外部結合の' NULL'結果が返された後*実行されるので、外部表の条件は外部結合の 'ON'節に含まれる必要があります。それ以外に、私は実際に助けを提供するために何をしようとしているのか分かりません... – Siyual
データサンプルを見る必要があります(そして期待される結果) – Horaciux
"うまくいかない"とはどういう意味ですか? 「働く」とは何ですか?このコードは何をするはずですか? [mcve]を読んで行動してください。あなたが何を話しているのかわからないので、私たちにすべてを説明する必要があるイメージです。私たちはそうしないからです。また、「2つの時間的に要求する」ことは意味をなさない。また、内部結合と左結合のテキスト定義を読んでください。 – philipxy