如何根据时间合并sql中的记录

时间:2013-10-01 12:55:28

标签: sql vb.net

对于我的调查软件,其中包含许多MCQ,其中用户可以在调查中来回导航并为同一问题选择2个/更多不同的选项。选择的每个选项都存储在与Question_ID关联的SQL数据库中。因此,为了分析和标记调查的给定选项,可能存在针对同一问题选择2个/更多选项的情况。

我还在表格中添加了Time -time(7)字段。此字段存储选择选项的时间。那么我怎样才能继续前进。 那我怎么能用最后选择的选项覆盖同一个问题的所有答案呢?它是否可行,SQL命令是什么。

表格结构:

Question_ID - int (FK) 
Survey_ID - int (FK) 
Time_chosen - time (7) 
Chosen_option - varchar(50) 

注意:前端是VB 2012

所以我应该在前端或后端包含这样的代码 谢谢

1 个答案:

答案 0 :(得分:0)

假设您使用的是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