MYSQL加入最近的记录并乘以

时间:2018-05-16 20:08:15

标签: mysql

我有一个股票表和股票历史表,我基本上是在尝试编写一个MySQL语句,它将获得特定日期股票的价值(在本例中为3月31日),这只能通过将每单位成本乘以每个项目在特定日期的余额来找到

到目前为止,我有:

    SELECT 
    SUM(tbl_stock.cost_per_unit * tbl_stock_history.quantity_balance) as total
    FROM
    tbl_stock
    LEFT JOIN
    tbl_stock_history ON tbl_stock.part_ID = tbl_stock_history.part_ID
    WHERE
    tbl_stock_history.date_of_entry <= '20180331'
    and tbl_stock.department = 1
    AND tbl_stock.qty > 0

不幸的是,此代码将针对部件ID的历史记录找到所有qty_balances的总和,而不是仅针对booking_date参数的最新值。

我已经尝试了所有可以找到的子选择查询的解决方案,但没有一个人在玩球,我觉得我错过了一些非常明显的东西!

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我认为这就是你要找的东西:

SELECT 
SUM(tbl_stock.cost_per_unit * t.quantity_balance) as total
FROM
tbl_stock
LEFT JOIN
(
 SELECT * FROM tbl_stock_history 
 WHERE date_of_entry <= '20180331' ORDER BY date_of_entry DESC limit 1
) 
t on tbl_stock.part_ID  = t.part_ID 
WHERE tbl_stock.department = 1
AND tbl_stock.qty > 0