如何将多对多关系表插入sql server
我通过.net应用程序将数据导入csv表格,请帮助,我如何才能插入所有表格以便查询如何将多对多关系表插入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
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