举例说明:以下是我写的语句,查询三个表联查,然后汇总到一起
select 条码信息,单据编号,count(*) 数量,ICMO.finterid From l_计件工资
left join l_条码 on l_计件工资.条码信息=l_条码.条码打印
LEFT JOIN ICMO ON 单据编号=ICMO.fbillno
where (l_计件工资.条码信息='1020905041200027')
and left(单据编号,4)='WORK'
group by 条码信息,单据编号,icmo.finterid
但是l_条码表中, 有一个条关联多个单据的问题出现,即以下结果
1020905041200027 WORK002905 5 3985
1020905041200027 WORK003603 5 4689
查询出来为两行记录,我只想保留单据号最大的一个,通过上面的一个语句能否实现?
昨天想了一天也没想到合适的办法
------解决方案--------------------
- SQL code
select 条码信息,单据编号,count(*) 数量,ICMO.finterid From l_计件工资 left join l_条码 on l_计件工资.条码信息=l_条码.条码打印 LEFT JOIN ICMO ON 单据编号=ICMO.fbillnowhere (l_计件工资.条码信息='1020905041200027')and left(单据编号,4)='WORK' and 单据号=(select MAX(单据号) from tbl s where s.col=....)--这里自己写关联条件group by 条码信息,单据编号,icmo.finterid
------解决方案--------------------
select 条码信息,单据编号,count(*) 数量,ICMO.finterid From l_计件工资
left join l_条码 on l_计件工资.条码信息=l_条码.条码打印
LEFT JOIN ICMO ON 单据编号=ICMO.fbillno
where left(单据编号,4)='WORK'
and Not Exists(select 1 from l_计件工资 AS x .
where x.条码信息=l_计件工资.条码信息 AND x.单据编号>l_计件工资.单据编号)
group by 条码信息,单据编号,icmo.finterid