曖昧なタイトルの最初の申し訳はありませんが、私は実際にそれをどのようにフレーズするのか分かりませんし、解決策をまだ見つけられていないと思います。MySQLグループでユニークな組み合わせを探す
私はOSCommerceの修正インストールを使用して、カスタムレポートのためのテーブル内で注文製品オプション/属性の一意の組み合わせを見つけることを試みています。製品の各オプション/属性は、1行に格納されます。製品は複数のオプション/属性を持つことができます。
私が返す次のSQLクエリ
SELECT
sum(op.products_quantity) AS attrCnt,
opa.products_options AS prodOption,
opa.products_options_values AS prodOptionValue
FROM
store_orders_products_attributes opa
LEFT JOIN store_orders o ON o.orders_id = opa.orders_id
LEFT JOIN store_orders_products op ON op.orders_products_id = opa.orders_products_id
WHERE
o.customers_id = '99999'
AND (o.date_purchased BETWEEN CAST('2017-01-03' AS DATE)
AND CAST('2017-02-01' AS DATE))
AND op.products_id = 88888
GROUP BY
opa.products_options_values
ORDER BY
opa.products_options,
opa.products_options_values
あります、その期間の注文合計製品が7だった
+---------+---------------+-----------------+
| attrCnt | prodOption | prodOptionValue |
+---------+---------------+-----------------+
| 6 | Select Colour | Blue |
| 1 | Select Colour | Yellow |
| 1 | Select Size | L |
| 2 | Select Size | M |
| 4 | Select Size | S |
+---------+---------------+-----------------+
を1大、2中、4小、 - 6青を、 1イエロー。それでL(大)が青色か黄色かどうかは分かりません。
私が望む結果は、以下のようなものです(L - BlueかBlue - Lかどうかは関係ありません):
+---------+-----------------+
| attrCnt | prodOptionCombo |
+---------+-----------------+
| 1 | L - Blue |
| 2 | M - Blue |
| 3 | S - Blue |
| 1 | S - Yellow |
+---------+-----------------+
この情報を含むテーブルがstore_orders_products_attributesです:
products_options欄には、そのような選択フレーバーとして、任意の分類テキストのグループ化(フリーテキスト)を含有するXYZなどを選択し、それは常に
カラー/サイズも文句を言わないことができ必ずしも2つあるとは限りません製品ごとに、0,1または12またはそれ以上になることがあります。
+-------------------------------+-----------+--------------------+------------------+-------------------------+
| orders_products_attributes_id | orders_id | orders_products_id | products_options | products_options_values |
+-------------------------------+-----------+--------------------+------------------+-------------------------+
| 1420 | 596 | 2626 | Select Colour | Blue |
| 1421 | 596 | 2626 | Select Size | M |
| 1438 | 600 | 2656 | Select Colour | Blue |
| 1439 | 600 | 2656 | Select Size | M |
| 1445 | 601 | 2668 | Select Colour | Blue |
| 1446 | 601 | 2668 | Select Size | S |
| 1447 | 602 | 2671 | Select Colour | Yellow |
| 1448 | 602 | 2671 | Select Size | S |
| 1464 | 611 | 2705 | Select Colour | Blue |
| 1465 | 611 | 2705 | Select Size | S |
| 1502 | 634 | 2791 | Select Colour | Blue |
| 1503 | 634 | 2791 | Select Size | L |
+-------------------------------+-----------+--------------------+------------------+-------------------------+
store_orders_productsテーブルが含まれています
+--------------------+-----------+-------------+----------------+---------------+-------------------+
| orders_products_id | orders_id | products_id | products_model | products_name | products_quantity |
+--------------------+-----------+-------------+----------------+---------------+-------------------+
| 2626 | 596 | 88888 | Code123 | Gloves | 1 |
| 2656 | 600 | 88888 | Code123 | Gloves | 1 |
| 2668 | 601 | 88888 | Code123 | Gloves | 1 |
| 2671 | 602 | 88888 | Code123 | Gloves | 1 |
| 2705 | 611 | 88888 | Code123 | Gloves | 2 |
| 2791 | 634 | 88888 | Code123 | Gloves | 1 |
+--------------------+-----------+-------------+----------------+---------------+-------------------+
任意のアイデア?始めるため
彼らは同じ列(products_options_values)2つの異なる属性(色やサイズ)を格納している理由を私は理解できません、これは概念上の問題ではありませんか? – mounaim
@mounaimあなたはHarald Ponce de LeonオリジナルのOSCommerceの作成者と話をしなければなりません。これらの情報は、注文前に同様の方法で保管され、注文後も同様の方法で保管されます。オプションは、異なる価格設定/体重(キログラム)など+/-お金を適用することができます 注文の表示が 製品名 ある - 選択サイズ= L そのようにデータを格納した結果 - カラー=ブルー を選択します。 – PeteB
@mounaimまた、サイズ、色、xyzなどが独自の列を持つ場合は、オプションの数は無制限です。 – PeteB