我需要根据最新的sale_date列返回每个prod_numb和cost_amt的记录。
基本上我需要这样的东西:
SELECT prod_numb
, cost_amt
FROM product_cost
WHERE MAX(sale_date)
我知道这不会运行,但是描述它的最佳方式。 有人可以帮助查询吗?
Array
(
[0] => Array
(
[prod_numb] => 2336
[cost_amt] => 32.00
[sale_date] => 2015-01-01
)
[1] => Array
(
[prod_numb] => 2336
[cost_amt] => 32.00
[sale_date] => 2015-01-02
)
[2] => Array
(
[prod_numb] => 2458
[cost_amt] => 32.00
[sale_date] => 2015-01-03
)
答案 0 :(得分:1)
您可以将内部联接与按prod_num分组的子选择一起使用以获取最大日期
select prod_numb, cost_amt
FROM product_cost
inner join (
select prod_numb, MAX(sale_date) max_date
FROM product_cost
group by prod_numb
) t on t.prod_numb = product_cost.prod_numb and t.max_date = product_cost.sale_date
答案 1 :(得分:0)
我认为您可以尝试这样的事情:-
SELECT prod_numb, cost_amt
FROM product_cost WHERE
sale_date = (SELECT max(sale_date) FROM product_cost);
答案 2 :(得分:0)
谢谢大家,但我想通了。
SELECT pm.prod_numb, pm.long_desc, pm.price_amt, tp.location_id, tp.adult_child_flg, pc.cost_amt FROM product_master pm INNER JOIN ticket_product tp ON pm.prod_numb = tp.prod_numb LEFT OUTER JOIN product_cost pc ON pc.prod_numb = pm.prod_numb AND pc.sale_date = TODAY WHERE pm.status = 'A'