我有一张表中有注释。它有一堆笔记,可以根据系统中的某些人自动执行不同的操作。
当订单被确定时,它会记下“订单已分配给'名称'” 重新分配订单时,会记下“订单已重新分配到'名称'”
当最初分配订单时,它会将“订单已分配到'名称'”语句投入到备注中。
在此之后,只要再次分配订单,它就会重新分配订单。
我遇到的问题是,如果订单由同一个人自己分配到系统中,它会直接跳到重新分配的注释,甚至不会说订单被分配给。
现在,在我的WHEN条件下,我有以下内容:
WHEN LEFT(n.Text,21) = 'Order was assigned to'
这基本上只返回第一次订购订单的名称。因为如果某人为自己分配了一个订单,它会跳过这个注释,我需要一个声明来执行此操作,但如果没有“订单被分配给”我需要返回第一个订单被重新分配给注释。这些注释在同一个表中还有一个审计插入时间戳字段。订单可以多次重新分配,但如果没有指定订单要注意,我只想要第一个订单。
我该怎么做?
我知道这是一个糟糕的应用程序设计,但我没有设计它,我无法改变它。我只需要知道如何编写SQL。
感谢!!!
答案 0 :(得分:1)
您可以获取当前查询,并添加具有相同代码和稍微不同的where子句的UNION查询。 LEFT()将查找重新分配的注释,并且您将添加NOT EXISTS子句以从第一个查询中排除具有正确注释的订单。