如何在sql中基于时间合并记录
对于我的调查软件,它包含许多MCQ,其中用户可以在调查中来回导航,并为同一问题选择2个或更多不同选项。所选的每个选项都存储在与问题ID关联的SQL数据库中。因此,为了分析和标记调查的给定选项,可能会出现为同一问题选择两个或多个选项的情况 我还在表中包含了一个如何在sql中基于时间合并记录,sql,vb.net,Sql,Vb.net,对于我的调查软件,它包含许多MCQ,其中用户可以在调查中来回导航,并为同一问题选择2个或更多不同选项。所选的每个选项都存储在与问题ID关联的SQL数据库中。因此,为了分析和标记调查的给定选项,可能会出现为同一问题选择两个或多个选项的情况 我还在表中包含了一个Time-Time(7)字段。此字段存储选择该选项的时间。那么,我怎样才能继续做下去呢。 那么,我如何用上次选择的选项覆盖同一问题的所有答案呢?它是否可行?SQL命令是什么 表结构: Question_ID - int (FK) Surve
Time-Time(7)
字段。此字段存储选择该选项的时间。那么,我怎样才能继续做下去呢。
那么,我如何用上次选择的选项覆盖同一问题的所有答案呢?它是否可行?SQL命令是什么
表结构:
Question_ID - int (FK)
Survey_ID - int (FK)
Time_chosen - time (7)
Chosen_option - varchar(50)
注:前端是VB 2012
那么我应该在前端还是后端包含这样的代码呢
谢谢假设您使用的是SQL Server,我建议您创建一个仅包含所有最新答案的视图:
CREATE VIEW LatestAnswers
AS
SELECT
Question_ID,
Survey_ID,
Time_Chosen,
Chosen_Option
FROM
(SELECT
Question_ID,
Survey_ID,
Time_Chosen,
Chosen_Option,
ROW_NUMBER() OVER (PARTITION BY Question_ID, Survey_ID ORDER BY Time_Chosen DESC) AnswerOrder
FROM
AnswersTable) Answers
WHERE
AnswerOrder = 1
您需要提供一个表的模式示例,以便我们能够在提供帮助之前了解数据的存储方式。此外,您还应该提供一些您尝试过的示例代码,不管它是否有效。表结构:Question\u ID-int(FK)Survey\u ID-int(FK)Time\u selected-Time(7)selected\u option-varchar(50)谢谢!但是,我是否可以使用这个建议的解决方案,将相关数据插入到另一个表中?这里的重要部分是ROW_NUMBER()OVER()部分。这样做的目的是用1-n的数字对每个答案进行排序,其中n是答案的数量。按所选时间排序,这意味着每个问题的最新答案分配为1。您可以在针对该表的任何查询中使用同一列select,并使用它获取最新答案。结果放在哪里取决于你#