0

それが役立つ場合、私は Opencart ショッピング カートを使用しており、reports-products-purchased ページに追加の列を表示した後です。
次のコードを使用して、カテゴリごとのアイテムの数量と総コストを表示することができます...

SELECT COUNT( DISTINCT op.model ) AS quantity, SUM( op.total + op.total * op.tax /100 ) AS total  
FROM `order_product` op  
LEFT JOIN `product_to_category` ptc 
    ON ( op.product_id = ptc.product_id )  
WHERE ptc.category_id =192  
   OR ptc.category_id =177  
GROUP BY category_id  

これにより、特定のカテゴリから合計 135.00 の 7 つのアイテムが表示され、他のカテゴリから合計 105.00 の 5 つのアイテムが表示されます。

数量合計
7 135.00
5 105.00

しかし、カテゴリと呼ばれる別のテーブルからカテゴリの名前を表示した後、このように表示されます

カテゴリー 数量 合計
レディース 7 135.00
メンズ 5 105.00

*product_to_category* を LEFT JOIN を使用してカテゴリにリンクしようとしましたが、私はこれについて初心者に過ぎないので、どんな助けも素晴らしいでしょう ;)

4

2 に答える 2

0

カテゴリの説明 (名前が何であれ) を select と group by に追加します。選択に含まれていない場合、group by に product_id は必要ありません。

SELECT ptc.CategoryDescription, COUNT( DISTINCT op.model ) AS quantity,
       SUM( (op.total+op.total) * op.tax/100 ) AS total
FROM order_product op
LEFT JOIN product_to_category ptc ON ( op.product_id = ptc.product_id )
WHERE ptc.category_id =192
OR ptc.category_id =177
GROUP BY ptc.CategoryDesription
于 2012-05-09T17:38:36.030 に答える
0

カテゴリ テーブルに参加して、名前を追加するだけです。

SELECT c.name
    , COUNT( DISTINCT op.model ) AS quantity
    , SUM( op.total + op.total * op.tax /100 ) AS total
FROM order_product op
LEFT JOIN product_to_category ptc 
    ON op.product_id = ptc.product_id
LEFT JOIN category_description c
    on ptc.category_id = c.category_id
WHERE ptc.category_id =192
    OR ptc.category_id =177
GROUP BY ptc.category_id, c.name

JOIN を初めて使用する場合は、ここで結合について説明します。

SQL 結合の視覚的な説明

于 2012-05-09T17:33:48.077 に答える