我需要使用布尔标志更新表中的选择。下面是一个例子,显示了我想要的。选择具有依赖关系的记录
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Answers2](
[GroupID] [int] NOT NULL,
[CompanyID] [int] NOT NULL,
[RankID] [int] NOT NULL,
[AnswerTime] [datetime] NULL,
[OnTop] [bit] NOT NULL
) ON [PRIMARY]
GO
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (9, 1, 1, NULL, 1)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (10, 1, 1, CAST(0x0000A3A400C5C100 AS DateTime), 1)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (10, 2, 2, CAST(0x0000A3A400D63BC0 AS DateTime), 1)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (10, 3, 3, CAST(0x0000A3A400CDFE60 AS DateTime), 0)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (10, 4, 4, CAST(0x0000A3A400E6B680 AS DateTime), 1)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (10, 5, 5, NULL, 1)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (10, 6, 6, CAST(0x0000A3A400F73140 AS DateTime), 0)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (11, 1, 1, CAST(0x0000A3A400D63BC0 AS DateTime), 1)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (11, 2, 2, CAST(0x0000A3A400C5C100 AS DateTime), 0)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (11, 3, 3, CAST(0x0000A3A400CDFE60 AS DateTime), 0)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (11, 4, 4, CAST(0x0000A3A400E6B680 AS DateTime), 1)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (11, 5, 5, CAST(0x0000A3A400EEF3E0 AS DateTime), 1)
INSERT [dbo].[Answers2] ([GroupID], [CompanyID], [RankID], [AnswerTime], [OnTop]) VALUES (12, 1, 1, CAST(0x0000A3A400F73140 AS DateTime), 1)
逻辑如下。 问题是一次发送给一个或多个公司。如果一家公司的排名最高,它会设置OnTop位。当他们回答下一个公司时(根据rank和groupID),没有回答会将OnTop位设置为true。如果一家拥有OnTop旗子的公司从未回答过任何一家公司(根据rank和groupid),他们将会得到它。
我可以使用游标来解决这个问题,但是这将用于EF迁移,因此它必须是一个用新的OnTop标志更新所有旧记录的语句。 我试图做一个内部连接本身,看时间和等级是否较低,但不包括当前文章上方的整个树。 任何想法或codesuggestions将非常感激?