老大帮我看下我的sql

image.png

如何解决现在的情况  一样的方案有两个时间 然后有重复的包装同一时间上料  sql如下:

select

s.MACHINECODE SMT设备编码,

s.MACHINENAME SMT设备名称,

s.MACHINETYPE SMT设备类型,

s.MACHINESITECODE SMT设备站点编码,

s.MACHINESITENAME SMT设备站点名称,

s.FGCODEVERSION 物料型号编码,

s.DESCRIPTION 物料型号名称,

s.FGCODE 物料型号规格,

s.FGKIND 物料定制规格,

s.WORKORDER 工单编码,

s.BACKUP4 方案名称,

s.EVENTTIME 方案提取时间,

s.EVENTUSER 方案提取人,

i.MATERIALID 包装编码,

i.EVENTUSER 上料人,

i.EVENTTIME 上料时间,

i.EVENTNAME 操作事件,

i.FIXTURENAME 飞达名称,

i.BOXQTY 包装数量,

i.LASTQTY 包装现有数量,

i.FIXTURECODE 飞达名称,

u.USERNAME 操作人,

us.USERNAME 操作人2

from SMTLINKSITEMATHISTORY s right join 

SMTSITEFIXMATUPHISTORY i on  s.MACHINESITECODE=i.MACHINESITECODE

JOIN USERINFO u on s.EVENTUSER=u.USERID

JOIN USERINFO us on i.EVENTUSER=us.USERID

AND s.WORKORDER=i.BACKUP1 AND s.WORKORDERROW=i.BACKUP2

and s.EVENTTIME<=i.EVENTTIME

AND s.DESCRIPTION=i.DESCRIPTION 

and s.FGKIND=i.FGKIND

AND s.EVENTNAME LIKE '%SITEMATADD%'

and to_char(s.EVENTTIME,'YYYY-MM-DD hh24:mi:ss')>='2021-10-20 20:28:10'

and to_char(s.EVENTTIME,'YYYY-MM-DD hh24:mi:ss')<='2021-10-21 15:28:10'

and to_char(i.EVENTTIME,'YYYY-MM-DD hh24:mi:ss')>='2021-10-20 20:28:10'

and to_char(i.EVENTTIME,'YYYY-MM-DD hh24:mi:ss')<='2021-10-21 15:28:10'

and s.BACKUP1 like'%SMT-2%'

and s.MACHINESITECODE like'%SMT-021F008%'

and i.EVENTNAME='SMTMATUP'

order by s.EVENTTIME ASC,i.EVENTTIME ASC,s.MACHINESITECODE ASC,s.BACKUP4 asc

我查方案表的时候 他确实有两个时间段提取了方案  但是包装不可能上过了又上而且是一样的时间

a475547619 发布于 2021-10-21 17:33 (编辑于 2021-10-21 17:35)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
axingLv6专家互助
发布于2022-4-20 23:41

根据sql分析,方案和包装来自不同的表

一个设备码的方案可以提取多次

一个方案又可以发起多次包装

因此表连接条件除了设备码相等之外,

应该还要有方案相关的字段条件成立,

才能是sql结果去重

最佳回答
0
丶尛伟Lv6初级互助
发布于2021-10-21 18:01

不知道你的数据库是什么类型,你可以在SELECT里加一行  

max(s.EVENTTIME) over(partition by s.BACKUP4) as 方案提取时间

最佳回答
0
zyuzhangLv4见习互助
发布于2021-10-21 19:48

首先,你要确定用户使用的程式是不是有流程上的问题,在一张表之内如果你都认为包装不可能有两个时间的,那就要考虑是不是程式使用的问题导致的数据混乱

  • 4关注人数
  • 399浏览人数
  • 最后回答于:2022-4-20 23:41
    请选择关闭问题的原因
    确定 取消
    返回顶部