sql >> データベース >  >> RDS >> Mysql

大規模なクエリで必要なMagentoSQLクエリヘルプ

    同様のレポートをいくつか作成しています。あなたがする必要があること:

    • シンプルな製品から始める
    • 構成可能な製品のcatalog_product_super_linkテーブルに参加する
    • クエリのSELECT部分​​で、IF =>を使用します。単純な製品の値が存在する場合はそれを使用し、そうでない場合は構成可能な製品の値を使用します(またはその逆)

    SELECT
        o.increment_id,    
        oi.order_id,
        o.STATUS AS order_status,
        o.created_at,                  
        ROUND(SUM(IF(oi2.qty_ordered IS NOT NULL, IF(oi2.qty_ordered > oi.qty_ordered, oi2.qty_ordered, oi.qty_ordered), oi.qty_ordered)), 0) AS cqty_ordered,
        ROUND(SUM(IF(oi2.qty_canceled IS NOT NULL, IF(oi2.qty_canceled > oi.qty_canceled, oi2.qty_canceled, oi.qty_canceled), oi.qty_canceled)), 0) AS cqty_canceled,
        ROUND(SUM(IF(oi2.qty_shipped IS NOT NULL, IF(oi2.qty_shipped > oi.qty_shipped, oi2.qty_shipped, oi.qty_shipped), oi.qty_shipped)), 0) AS cqty_shipped,
        ROUND(SUM(IF(oi2.qty_ordered IS NOT NULL, IF(oi2.qty_ordered > oi.qty_ordered, oi2.qty_ordered, oi.qty_ordered), oi.qty_ordered)) - SUM(IF(oi2.qty_canceled IS NOT NULL, IF(oi2.qty_canceled > oi.qty_canceled, oi2.qty_canceled, oi.qty_canceled), oi.qty_canceled)) - SUM(IF(oi2.qty_shipped IS NOT NULL, IF(oi2.qty_shipped > oi.qty_shipped, oi2.qty_shipped, oi.qty_shipped), oi.qty_shipped)), 0) AS cqty_missing
    FROM sales_flat_order_item AS oi
    INNER JOIN sales_flat_order AS o ON oi.order_id=o.entity_id
    LEFT JOIN sales_flat_order_item AS oi2 ON oi.parent_item_id=oi2.item_id AND oi2.product_type='configurable'
    WHERE oi.product_type='simple'
    GROUP BY oi.order_id
    HAVING cqty_missing=0 AND order_status NOT IN ('complete','canceled','closed');
    



    1. MYSQL宣言変数

    2. SQL Server のテーブルのハッシュまたはチェックサムを計算する

    3. system.data.sqlclient.sqlexception (0x80131904) エラーの解決方法

    4. データベースメールのスクリプト設定