Как вставить в SQL-сервер Многие ко многим таблицам отношений - PullRequest
0 голосов
/ 03 сентября 2010

Я импортировал данные в таблицу csv через приложение .net, помогите, пожалуйста, как я могу вставить все таблицы, чтобы я мог запросить;

  1. средняя оценка студентов на вопрос или тест
  2. ответы ученика на вопрос или частота ответов на вопрос и т. Д.

Мои таблицы в этой форме;

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

1 Ответ

0 голосов
/ 03 февраля 2012
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

Я не вижу name для Test в таблице Csv, поэтому я не могу написать insert для таблицы Test:)

Студенческая средняя оценка на вопрос

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...