Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Trợ giúp truy vấn sql Magento cần thiết với truy vấn lớn

chúng tôi đang thực hiện một số báo cáo tương tự. Những gì bạn cần làm:

  • Bắt đầu từ sản phẩm đơn giản
  • THAM GIA qua bảng catalog_product_super_link trên sản phẩm có thể định cấu hình
  • Trong phần CHỌN của truy vấn, hãy sử dụng IF => nếu giá trị của sản phẩm đơn giản ở đó, hãy sử dụng nó, nếu không, hãy sử dụng giá trị của sản phẩm có thể định cấu hình (hoặc ngược lại)

Ví dụ

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các phép nối bên ngoài bên trái và các phép nối bên trái có giống nhau không?

  2. Giá trị mặc định không hợp lệ cho 'Ngày'

  3. nối các bảng và chuyển đổi các cột và hàng

  4. Làm thế nào để biết nếu truy vấn MySQL UPDATE không thành công vì thông tin được cung cấp khớp với dữ liệu đã có trong cơ sở dữ liệu?

  5. Chọn mySQL chỉ dựa trên tháng và năm