我有一个股票表和股票历史表,我基本上是在尝试编写一个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参数的最新值。
我已经尝试了所有可以找到的子选择查询的解决方案,但没有一个人在玩球,我觉得我错过了一些非常明显的东西!
非常感谢任何帮助!
答案 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