#2
yiyanxiyin2023-07-07 11:48
|
我有两张表之间进行查询,附件是我写的语句,但是我感觉很笨拙,所以想请教一下各位是否有更灵巧,更快的写法!
表1:凭证明细表 记录数:500000条
会计分录编码id 借方金额
01 10
02 20
03 30
表2:辅助核算表 记录数:30000条
会计分录编码id 辅助核算类型id 辅助核算名称 辅助核算编号
01 SZXM 住宿费 0101
01 BM 市场部 BM01
02 SZXM 手机话费 0102
02 BM 财务部 BM02
03 SZXM 差旅费 0103
03 BM 技术部 BM03
查询结果如下
01 市场部 BM01 住宿费 0101 10
02 财务部 BM02 手机话费 0103 20
03 技术部 BM03 差旅费 0103 30
select a.会计分录编码id,b.辅助核算编号,b.辅助核算名称,c.辅助核算编号,c.辅助核算名称,sum(借方金额) from 表1 a
left join
(select 会计分录编码id,辅助核算名称,辅助核算编号 from 表2 where 辅助核算类型id='bm') b on a.会计分类编码id=b.会计分录编码id
left join
(select 会计分录编码id,辅助核算名称,辅助核算编号 from 表2 where 辅助核算类型id='bm') c on a.会计分类编码id=c.会计分录编码id
group by a.会计分录编码id,b.辅助核算编号,b.辅助核算名称,c.辅助核算编号,c.辅助核算名称