sql >> Database teknologi >  >> RDS >> Mysql

Magento sql-forespørgselshjælp nødvendig med massiv forespørgsel

vi laver nogle lignende rapporter. Hvad du skal gøre:

  • Start fra det simple produkt
  • JOIN via tabellen catalog_product_super_link på det konfigurerbare produkt
  • I SELECT-delen af ​​forespørgslen, brug IF => hvis værdien af ​​det simple produkt er der, brug det, ellers brug værdien af ​​det konfigurerbare produkt (eller omvendt)

Eksempel

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. Er SQL Server Bulk Insert Transactional?

  2. Sådan tilføjes fremmednøglebegrænsning til eksisterende tabel i SQL Server - SQL Server / TSQL vejledning del 68

  3. Indsendelse til Mysql ved hjælp af Php med Salt&MD5

  4. Skal jeg deaktivere MySQL strict mode?