Sql 如何获取最新序列中出现错误的行?

Sql 如何获取最新序列中出现错误的行?,sql,sql-server,Sql,Sql Server,目标是获取最新序列中出现错误的行。示例数据如下所示,之所以使用诱惑数据,是因为它对进一步的事务非常有用 这是我的问题 SELECT MAX(cc.[sequence]) [sequence], OrderID, OrderItemID INTO #tmpErrorRecords FROM [TMC].CVOrderCompletions cc WHERE cc.[status] = 0 AND LTRIM(RTRIM(ISNULL(errorMess

目标是获取最新序列中出现错误的行。示例数据如下所示,之所以使用诱惑数据,是因为它对进一步的事务非常有用

这是我的问题

SELECT MAX(cc.[sequence]) [sequence], 
       OrderID, 
       OrderItemID
INTO #tmpErrorRecords
FROM [TMC].CVOrderCompletions cc
WHERE cc.[status] = 0
      AND LTRIM(RTRIM(ISNULL(errorMessage, ''))) <> ''
GROUP BY cc.OrderID, 
         cc.OrderItemID;

您的潜在客户可以/应该告诉您的是,
cc.[status]=0
不会为显示的示例数据获取任何行

什么定义了错误行?它有一条错误消息

这是您需要的唯一过滤器。不要把事情过分复杂化

样本数据

(下次可以复制粘贴的文本数据,而不是图像!)

解决方案

select te.orderId,
       te.orderItemId,
       max(te.sequence) as sequence
from tmpErrors te
where te.errorMessage is not null
group by te.orderId,
         te.orderItemId;
结果

orderId orderItemId sequence
------- ----------- --------
1142898 1           3
1142910 1           2

查看实际情况。

如果有人认为有错误,为什么不告诉你他怀疑的是什么?听起来像是一个非常无用的线索…所以你删除了之前的问题并再次发布。你不认为你会收到类似的评论吗?
select te.orderId,
       te.orderItemId,
       max(te.sequence) as sequence
from tmpErrors te
where te.errorMessage is not null
group by te.orderId,
         te.orderItemId;
orderId orderItemId sequence
------- ----------- --------
1142898 1           3
1142910 1           2