如何将多对多关系表插入sql server

如何将多对多关系表插入sql server,sql,sql-server,tsql,sql-server-2008,Sql,Sql Server,Tsql,Sql Server 2008,我通过.net应用程序将数据导入csv表格,请帮助,我如何才能插入所有表格以便查询 学生对问题或测试的平均分数 学生对问题的回答或对问题的回答频率等 我的桌子是这种形式的 Csv Ans Quest Test Ans_Quest_Test --------- ------ ------ ------ ------------- LName id id I

我通过.net应用程序将数据导入csv表格,请帮助,我如何才能插入所有表格以便查询

  • 学生对问题或测试的平均分数
  • 学生对问题的回答或对问题的回答频率等
  • 我的桌子是这种形式的

    Csv             Ans         Quest      Test    Ans_Quest_Test
    ---------      ------      ------     ------    -------------
    LName           id          id         Id       Ansid
    FName           Ans         Quest      name     Questid
    stdname        StdScore    ActScore             Testid
    Quest                                           Stdname
    Ans
    ActualScore
    StdScore
    
    我在
    Csv
    表中没有看到
    测试的
    名称
    ,因此我无法为表
    测试编写
    插入
    :)

    学生对问题的平均分数

    学生对问题的回答

    回答问题的频率


    不清楚你在问什么。你能重新表述一下这个问题来澄清你需要什么吗?你是说你只有一个表,所有这些元素都在列中吗?或者您正在尝试将
    Csv
    表标准化为
    Ans
    Quest
    Test
    Ans\u Quest\u Test
    表?
    INSERT INTO Ans_Quest_Test
    SELECT FLOOR(RAND(CHECKSUM(NEWID())) * 10000) --random number
    , FLOOR(RAND(CHECKSUM(NEWID())) * 10000)--random number
    , FLOOR(RAND(CHECKSUM(NEWID())) * 10000)--random number
    , Stdname FROM Csv
    
    INSERT INTO Ans
    SELECT AnsId, Ans, StdScore FROM Ans_Quest_Test
        JOIN Csv ON Ans_Quest_Test.Stdname=Csv.stdname
    
    INSERT INTO Quest
    SELECT QuestId, Quest, ActualScore FROM Ans_Quest_Test
        JOIN Csv ON Ans_Quest_Test.Stdname=Csv.stdname
    
    SELECT Stdname, AVG(Quest.ActScore)
    FROM Ans_Quest_Test
        JOIN Quest ON Ans_Quest_Test.Questid=Quest.id
    GROUP BY Stdname
    
    SELECT Ans_Quest_Test.Stdname, Quest.Quest, Ans.Ans
    FROM Ans_Quest_Test
        JOIN Quest ON Ans_Quest_Test.Questid=Quest.id
        JOIN Ans ON Ans_Quest_Test.Ansid=Ans.id
    
    SELECT  Quest.Quest, COUNT(Ans.id)
    FROM Ans_Quest_Test
        JOIN Quest ON Ans_Quest_Test.Questid=Quest.id
        JOIN Ans ON Ans_Quest_Test.Ansid=Ans.id
    GROUP BY Quest.Quest