有没有SQL大佬啊,帮忙看看怎么写

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 --样品检测项目

LEFT 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 = '原纸车间检验组'

------------------------

这是sql,查出来的数据是这样的

image.png

每行数据代表了这个批号的一个检测项目,一般来说,一次会检查很多个项目,所有有很多个相同时间段的同批号数据。但是有时候,会出现重新检测一次所有项目的情况,先我想要的结果是把最时间最新的一次批号检查的项目展示出来,旧时间段的就不要了,该怎么写呢?

无为而无不为 发布于 2021-2-24 16:00
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2021-2-24 16:04

select max(检验时间),你要的字段 from (你上面的SQL语句) gruop by 你要的字段

最佳回答
0
地球刘亦菲Lv6初级互助
发布于2021-2-24 16:08(编辑于 2021-2-24 16:29)

select 样品检验报告单据编号,检验结论,分项结果,样品名称,采样点,max(登记时间) 登记时间,质量标准,批号,检验时间, 检测项目,检测分项,计量单位,报出值,name 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 --样品检测项目 LEFT 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 = '原纸车间检验组') group by 样品检验报告单据编号,检验结论,分项结果,样品名称,采样点,质量标准,批号,检验时间, 检测项目,检测分项,计量单位,报出值,name

按照这个来

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