mysql查询SKU在最近创建的采购单中的到达时间、数量
1、需求
查询SKU在最近创建的采购单中的到达时间、数量
purchase_no表 purchase_no, create_at, arrival_at
purchase_detail表 purchase_no, goods_sn,quantity
查询SKU create_at最近的采购单的arrival_at,quantity
2、sql
copySELECT
pd.goods_sn,
pn.arrival_at,
pd.quantity
FROM
purchase_detail pd
JOIN
purchase_no pn ON pd.purchase_no = pn.purchase_no
JOIN
(
SELECT
goods_sn,
MAX(create_at) AS latest_create_at
FROM
purchase_detail pd
JOIN
purchase_no pn ON pd.purchase_no = pn.purchase_no
GROUP BY
goods_sn
) latest_pd ON pd.goods_sn = latest_pd.goods_sn
AND pn.create_at = latest_pd.latest_create_at;
3、laravel写法
copy$innerQuery = DB::table('purchase_detail as pd')
->join('purchase_no as pn', 'pd.purchase_no', '=', 'pn.purchase_no')
->select('pd.goods_sn', DB::raw('MAX(pn.create_at) as latest_create_at'))
->groupBy('pd.goods_sn');
$latestPurchases = DB::table(DB::raw("({$innerQuery->toSql()}) as latest_pd"))
->mergeBindings($innerQuery)
->join('purchase_detail as pd', function ($join) {
$join->on('pd.goods_sn', '=', 'latest_pd.goods_sn');
})
->join('purchase_no as pn', function ($join) {
$join->on('pd.purchase_no', '=', 'pn.purchase_no')
->on('pn.create_at', '=', 'latest_pd.latest_create_at');
})
->select('pd.goods_sn', 'pn.arrival_at', 'pd.quantity')
->get();
分类:
mysql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2022-06-17 laravel速查表