当数据重复时,只展示时间最新的行数据公式怎么写呢?

image.png如图,当批号重复时,取取样时间最新的一行数据展示。公式该怎么写呢?

image.png

FineReport 无为而无不为 发布于 2021-2-24 13:43
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
地球刘亦菲Lv6初级互助
发布于2021-2-24 13:47(编辑于 2021-2-24 13:56)

这个要在sql里写

SELECT 批次号,列1,列2......,max(取样时间) from (原先SQL语句)group by 批次号,列1,列2.。。。

  • 无为而无不为 无为而无不为(提问者) 咨询了官方客服,目前帆软平台不支持这种功能,只能再sql里面处理
    2021-02-24 14:24 
  • 地球刘亦菲 地球刘亦菲 回复 无为而无不为(提问者) select max(a.登记时间),a.* from (select report.TABLE_NO 样品检验报告单据编号,report.test_Result 检验结论,reportCom.TEST_RESULT 分项结果,sample.name 样品名称,picksite.name 采样点, CONVERT(varchar(100),sample.register_Time, 20) 登记时间,std.name 质量标准,sample.batch_Code 批号,CONVERT(varchar(100),sample.test_Time, 20) as 检验时间,testItem.name 检测项目 , simpleCom.com_Name 检测分项,simpleCom.UNIT_NAME 计量单位,simpleCom.DISP_VALUE 报出值,checkGroup.name from LIMSSA_SAMPLE_REPORTS report --样品检验报告 left join LIMSSA_SAMPLE_INFOS sample on report.sample_id=sample.id --样品 left join LIMSBA_PICKSITE picksite on picksite.id=sample.ps_id --采样点 left join LIMSBA_STD_VERSIONS stdVersion on stdVersion.id=report.STD_VER_ID --质量标准版本 left join LIMSBA_QUALITY_STDS std on stdVersion.std_id=std.id --质量标准 left join LIMSSA_REPORT_COMS reportCom on reportCom.REPORT_ID=report.id --样品检验报告明细 left join LIMSSA_SAMPLE_COMS simpleCom on reportCom.SAMPLE_COM_ID=simpleCom.id --样品检测分项 left join LIMSBA_TEST_ITEMS testItem on simpleCom.test_id=testItem.id --检测项目 left join LIMSSA_SAMPLE_TESTS sampleTest on sampleTest.SAMPLE_ID=SAMPLE.id and sampleTest.test_id=testItem.id --样品检测项目 l eft join LIMSBA_ANALYST_GROUP checkGroup on sampleTest.ANALYST_GROUP_ID=checkGroup.id --检验组 where report.valid=1 and report.status=99 and sample.valid=1 and stdVersion.valid=1 and std.valid=1 and testItem.valid=1 and checkGroup.valid =1 and sample.SAMPLE_STATE != \\\'LIMSSample_sampleState/canceled\\\' and 1=1 and checkGroup.name !=\\\'原纸车间检验组\\\' ) a where 1=1 and ${if(len(kssj&&jssj)==0,\\\"\\\",\\\"and sample.register_Time >= \\\'\\\"+kssj+\\\"\\\' and sample.register_Time <= \\\'\\\"+jssj+\\\"\\\'\\\")} ${if(len(ypmc)==0,\\\"\\\",\\\"and sample.name = \\\'\\\"+ypmc+\\\"\\\'\\\")} ${if(len(ph)==0,\\\"\\\",\\\" and sample.batch_Code like \\\'%\\\"+ph+\\\"%\\\'\\\")}GROUP BY a.批号,a.样品检验报告单据编号,a.检验结论,a.分项结果,a.样品名称,a.采样点,a.质量标准,a.登记时间,a.检验时间,a.检测项目,a.检测分项,a.计量单位,a.报出值,a.name; 这样试试
    2021-02-24 15:16 
  • 无为而无不为 无为而无不为(提问者) 回复 地球刘亦菲 我现在再sql里面先检测了一编数据,发现重复的还是会显示
    2021-02-24 15:51 
  • 地球刘亦菲 地球刘亦菲 回复 无为而无不为(提问者) 你的登记时间和问题里的取样时间是同一个吗
    2021-02-24 16:03 
最佳回答
0
烟尘Lv6高级互助
发布于2021-2-24 13:51(编辑于 2021-2-24 13:51)

https://blog.csdn.net/hbn1326317071/article/details/86549368

select a.CompanyID,a.UserName,a.AddTime,a.JF,

ROW_NUMBER() over(partition by a.CompanyID order by b.ID) as new_index FROM dbo.LB_Company a 

left join dbo.LB_Certificate b on a.CompanyID = b.CompanyID where a.CompanyID in (361,414,447)

  • 3关注人数
  • 551浏览人数
  • 最后回答于:2021-2-24 13:56
    请选择关闭问题的原因
    确定 取消
    返回顶部