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

Làm thế nào để trừ hàng tồn kho và hàng bán bằng cách sử dụng truy vấn con mysql?

Để đạt được sản lượng mong muốn, bạn cần tính toán tổng doanh số bán sản phẩm đang chạy. Để có được dữ liệu có ý nghĩa, dữ liệu trong sales bảng phải được sắp xếp theo thứ tự thời gian. Vì vậy, bạn cần ít nhất một trường nữa để sắp xếp dữ liệu - không thành vấn đề nếu đó là dấu thời gian hay id đồng ruộng. Giả sử có một id trường trong bảng bán hàng. Đây là một truy vấn để lấy những gì bạn đã mô tả:

SELECT 
    sales.id,
    sales.store_id,
    sales.product_id,
    inventories.quantity-IFNULL(SUM(sales_2.quantity), 0) as inventory,
    sales.quantity as sales,
    inventories.quantity-IFNULL(SUM(sales_2.quantity), 0) - sales.quantity as remaining
FROM
    sales
        INNER JOIN
    inventories ON inventories.store_id = sales.store_id
        AND inventories.product_id = sales.product_id
        LEFT JOIN
    sales AS sales_2 ON sales_2.store_id = sales.store_id
        AND sales_2.product_id = sales.product_id
        AND sales_2.id < sales.id
GROUP BY sales.id , sales.store_id , sales.product_id
ORDER BY sales.id

Ví dụ thứ hai của sales bảng được gọi là sales_2 được sử dụng để tính tổng doanh số bán hàng trước đó (sales_2.id<sales.id )

Bạn có thể loại trừ sales.id từ select , nhưng bạn cần giữ nó trong nhóm group byorder by .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. so sánh ngày cơ bản để kiểm tra ngày hết hạn

  2. Câu lệnh If Else đơn giản trong sql

  3. Golang ORDER BY có vấn đề với MySql

  4. khi tôi sử dụng bí danh find_by_sql, tôi đã nhầm lẫn

  5. Thiết kế cơ sở dữ liệu Mysql cho khách hàng nhiều địa chỉ và địa chỉ mặc định