同一零件存在多行时需要查找零件数据

Posted

技术标签:

【中文标题】同一零件存在多行时需要查找零件数据【英文标题】:Need to lookup part data when there are multiple rows of the same part 【发布时间】:2021-07-14 17:51:54 【问题描述】:

我有一个 SQL 表,其中的部分带有自己的二维条码。同一零件可能有多行。每行都有一个带有 Date_Time 标记的列。

我需要获取最新的零件数据并查看其中一列以查看该值是否为 INT 1。

以下示例:查找“5”部分的最新时间戳并查看“PartStatusSt1”是否为“1”

enter image description here

enter image description here

这是我的查询:

"select * from [AppsData].[dbo].[OilPumpCoverTest] where [2DMatrix] like '" & HMIRuntime.Tags("2DMatrix").Read(1) & "'"

然后我需要查看列名“PartStatusSt1”并将该 INT 值移动到 WinCC 变量,如下所述:

HMIRuntime.Tags("Sql_Station1_Status").Write
Recordset.Fields("PartStatusSt1").Value,1

上面的代码可以工作,但如果我有多行相同的零件(通过 2DMatrix),它会随机获取一行零件数据。我需要获取每个 Date_Time 时间戳的最新数据。

注意:我的代码是通过 VBS 在 WinCC 中的。

感谢您的帮助!

【问题讨论】:

请编辑您的问题并添加您的查询,并解释查询的哪一部分没有给您预期的结果 另外,请针对您正在使用的特定类型的 sql(oracle、ms-sql、mysql 等)在您的问题上添加标签 根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。 【参考方案1】:
"select top 1 * 
from [AppsData].[dbo].[OilPumpCoverTest] 
where [2DMatrix] like '" & HMIRuntime.Tags("2DMatrix").Read(1) & "' order by Date_Time desc "

【讨论】:

每次选择最新的一行数据 这样更容易!谢谢!!【参考方案2】:

为了获取最新的零件记录,我首先使用 RANK 根据其时间戳为每个零件分配一个编号。例如,如果 A 部分具有三个时间戳,则根据您的排序,将为每条记录分配排名 1、2 和 3。我对我使用的零件编号做了类似的事情。要获取零件的最新记录,您可以查询 rankval = 1 的所有位置。 下面的小样本...

SELECT  z.* 
FROM
(SELECT RANK() OVER(PARTITION BY PartNo, LotNumber ORDER BY DatePosted DESC) AS rankval                                                            , TagNo, PartNo, LotNumber, DatePosted FROM PartTable) AS z
--WHERE z.rankval = 1

然后您可以使用 case 语句或 where 子句来检查部件或部件状态。

【讨论】:

仅供参考 case 是一个表达式而不是一个语句 所以下面是我如何修改上面的代码,它似乎工作得很好!非常感谢!! SELECT z.* FROM (SELECT RANK() OVER(PARTITION BY [2DMatrix] ORDER BY [Date_Time] DESC) AS rankval, [2DMatrix], [PartStatusSt1], [Date_Time] FROM [AppsData] .[dbo].[OilPumpCoverTest]) AS z WHERE z.rankval = 1 and [2DMatrix] like 'Test' 非常酷,看起来很棒。很高兴我能帮上忙!

以上是关于同一零件存在多行时需要查找零件数据的主要内容,如果未能解决你的问题,请参考以下文章

怎样备份FANUC 0i零件加工程序、PMC程序、PMC 参数,CNC参数、螺距补偿、宏变量数据需要备份,对于数控机

solidworks零件总是连接不到工程图怎么处理,零件和工程图在同一文件夹。

为啥catia零件图很大,装配成总装图内存反而很小

机械生产制造企绝大部分零件需要考几级加工的方法来获得

9.0异常处理

贪心-零件加工