Asp.net Cd7]=“测试正常(TOK)”然后是“TOK” 当[ResCd7]=“Lec设施(Lec)”时,则为“Lec” 当[ResCD7]=“已调度未发现故障(NTF)”时,则为“NTF” 当[ResCD7]=“测试时清除(CWT)”时,则“CWT”结束为[Resolution] 来自[SNA\U票证详细信息]td,其中([CompID]=@CompID)

Asp.net Cd7]=“测试正常(TOK)”然后是“TOK” 当[ResCd7]=“Lec设施(Lec)”时,则为“Lec” 当[ResCD7]=“已调度未发现故障(NTF)”时,则为“NTF” 当[ResCD7]=“测试时清除(CWT)”时,则“CWT”结束为[Resolution] 来自[SNA\U票证详细信息]td,其中([CompID]=@CompID),asp.net,sql,sql-server,Asp.net,Sql,Sql Server,你应该检查datediff是否做了你想做的事情——只需使用一些测试数据即可。另外,您可能希望确保“最近”行实际上不在检索到的行之后,因此我添加了: AND recent.[DtRFC] < td.[DtRFC] 和最近的。[DtRFC]1 而不是 选择(COUNT()…)>“1”试试看 选择(COUNT()…)>1 而不是 选择(COUNT()…)>“1”如果在外部查询中别名SNA\U票证详细信息(例如SNA\U票证详细信息SNA),则可以在子查询中引用该信息 为了简单起见,还可以在子查

你应该检查datediff是否做了你想做的事情——只需使用一些测试数据即可。另外,您可能希望确保“最近”行实际上不在检索到的行之后,因此我添加了:

AND recent.[DtRFC] < td.[DtRFC]
和最近的。[DtRFC]
尽管如果您知道您的票证ID是连续的,您也可以使用它们来代替日期字段。

试试看

选择(COUNT()…)>1

而不是

选择(COUNT()…)>“1”

试试看

选择(COUNT()…)>1

而不是


选择(COUNT()…)>“1”

如果在外部查询中别名SNA\U票证详细信息(例如SNA\U票证详细信息SNA),则可以在子查询中引用该信息

为了简单起见,还可以在子查询中别名SNA\u Tick\u Detail(SNA\u Ticket\u Detail SNA\u sub)


然后,您当前拥有的(XX_CIRCUIT\u ID=XX_CIRCUIT\u ID)将更改为(SNA_sub.XX_CIRCUIT\u ID=SNA.XX_CIRCUIT\u ID)

如果您在外部查询中别名为SNA_Ticket\u Detail(例如SNA_Ticket\u Detail SNA),您可以在子查询中引用它

为了简单起见,还可以在子查询中别名SNA\u Tick\u Detail(SNA\u Ticket\u Detail SNA\u sub)


然后,如果您当前有(XX\u CIRCUIT\u ID=XX\u CIRCUIT\u ID),则将更改为(SNA\u sub.XX\u CIRCUIT\u ID=SNA.XX\u CIRCUIT\u ID)

对于SQL的最小更改,请按如下方式更改子查询:

SELECT ... FROM SNA_Ticket_Detail AS i WHERE ... AND i.XX_CIRCUIT_ID = [SNA_Ticket_Detail].[XX_CIRCUIT_ID]
您必须以某种方式引用外部表,您不能仅比较
XX_电路_ID
XX_电路_ID
以获得相等-这将始终是真实的比较。;-)


相反,您必须将外部的
XX_电路ID
(引用为
[SNA\u票证详细信息].[XX_电路ID]
与内部的
XX_电路ID
(引用为
i.XX_电路ID
)进行比较,以便更清楚地说明问题。

对于SQL的最小更改,请按如下方式更改子查询:

SELECT ... FROM SNA_Ticket_Detail AS i WHERE ... AND i.XX_CIRCUIT_ID = [SNA_Ticket_Detail].[XX_CIRCUIT_ID]
您必须以某种方式引用外部表,您不能仅比较
XX_电路_ID
XX_电路_ID
以获得相等-这将始终是真实的比较。;-)


相反,为了清晰起见,您必须将外部
XX\u电路ID
(引用为
[SNA\u票证详细信息].[XX\u电路ID]
)与内部
XX\u电路ID
(引用为
i.XX\u电路ID
)进行比较。

这是一个混乱的查询

您需要将“内部”查询(也称为子查询)过滤到外部查询。这个概念通常被称为a。参见Rory的解决方案


或者,可以使用包含聚合数据的视图(或派生表)的联接。这通常是性能方面的最佳选择。

这是一个混乱的查询

您需要将“内部”查询(也称为子查询)过滤到外部查询。这个概念通常被称为a。参见Rory的解决方案

或者,可以使用包含聚合数据的视图(或派生表)的联接。一般来说,这是性能的最佳选择

AND recent.[DtRFC] < td.[DtRFC]
SELECT ... FROM SNA_Ticket_Detail AS i WHERE ... AND i.XX_CIRCUIT_ID = [SNA_Ticket_Detail].[XX_CIRCUIT_ID]