select v_dts.* from v_dts
left join(select in_d2.ref_book from in_h
inner join in_d2 on(in_h.doc_code=in_d2.doc_code and in_h.book=in_d2.book)
where in_h.doc_code='IN' group by in_d2.ref_book) as i
on(v_dts.book=i.ref_book)
Run Code Online (Sandbox Code Playgroud)
$order_progress = DB::table('v_dts')
->select('v_dts.*')
->leftJoin('in_h',function($join_in_h){
$join_in_h->select('in_d2.ref_book');
$join_in_h->join('in_d2',function($join_in_d2){
$join_in_d2->on('in_h.doc_code','=','in_d2.doc_code');
$join_in_d2->on('in_h.book','=','in_d2.book');
$join_in_d2->where('in_h.doc_code','=','IN');
$join_in_d2->groupBy('in_d2.ref_book');
});
})
->get();
Run Code Online (Sandbox Code Playgroud)
但是,我的查询生成器是错误的。它显示一条错误消息
SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法有错误;查看与您的MySQL服务器版本相对应的手册以获取正确的语法
并生成SQL
SQL:从左联接中选择
v_dts
。*v_dts
(。= 。和。= 。以及。= IN 上的in_h
内部联接)in_d2
in_h
doc_code
in_d2
doc_code
in_h
book
in_d2
book
in_h
doc_code
任何人都可以帮助我解决我的问题吗?谢谢。
[
{
"agent_id": "D01",
"amount": "2"
},
{
"agent_id": "D01",
"amount": "2"
},
{
"agent_id": "A01",
"amount": "1"
},
{
"agent_id": "A01",
"amount": "1"
},
]
Run Code Online (Sandbox Code Playgroud)
[
{
"agent_id": "D01",
"amount": "4"
},
{
"agent_id": "A01",
"amount": "2"
},
]
Run Code Online (Sandbox Code Playgroud)
你好,有一个原始数据集,有 4 个集合,如上图所示。我试图用 group byagent_id
和 sum of the来转换数据amount
。
我计划使用子查询 likes select agent_id, sum(amount) from (Dataset) group by agent_id
,但是我不知道如何在 laravel 子查询中实现它。任何人都可以指导我或提供一些建议。欣赏它。