就是这种情况,我作为当地学区的网络开发人员工作,我的前任建立了一个自定义应用程序来跟踪孩子的考试成绩。我不是sql专家,所以我顺从主人!
我在MS Access中内置了以下表格:
下面,我的桌子就像他们现在一样。最后一张表是我想要的。
评估表
asstID asstName
1 Math
2 Reading
3 Literature
技能表
skillID skillName asstID
80 Vocabulary 3
81 Addition 1
82 Grammar 2
掌握表
masteryID stuID score skillID
20 st001 89 82
21 st001 96 81
22 st001 100 80
23 st002 88 81
24 st002 74 80
25 st002 99 82
掌握表 - 我想要的。
masteryID stuID score skillID asstID
20 st001 89 82 2
21 st001 96 81 1
22 st001 100 80 3
23 st002 88 81 1
24 st002 74 80 3
25 st002 99 82 2
基本上,我有几千名学生需要将asstID添加到掌握表中。
我正在寻找帮助创建一个SQL语句我可以放入MS Access,它将显示与当前表中的skillID相对应的asstID。
任何帮助表示赞赏。
请不要问为什么我们使用MS Access,这就是他在构建应用程序时所使用的
答案 0 :(得分:2)
SELECT Mastery.masteryID, Mastery.stuID, Mastery.score, Mastery.skillID, Skills.asstID
FROM Mastery
INNER JOIN Skills
ON Mastery.skillID = Skills.skillID;
在查询设计器(QBE或按示例查询)网格中,您将添加Mastery表和Skills表,并确保Mastery.SkillID
和Skills.SkillID
之间存在关系线。< / p>
答案 1 :(得分:0)
怎么样:
SELECT mastery_table.masteryID,
mastery_table.stuID,
mastery_table.score,
mastery_table.skillID,
skills_table.asstID
FROM mastery_table, skills_table
WHERE mastery_table.skillID=skills_table.skillID
答案 2 :(得分:0)
这是我最终用于更新我的4k +行的内容。在运行之前,我在数据库中创建了一个名为asstID
的新列。
说明: - 循环通过tblMastery&amp;从每一行获取tblMastery.skillID的值 - 连接到tblSkills&amp;获取tblSkills.asstID的值,其中tblSkills.skillID与tblMastery.skillID匹配 - 使用tblSkills.asstID的匹配值更新tblMastery.asstID
希望这有助于某人。 :)
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "C:/database.mdb"
set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT tblMastery.Skill FROM tblMastery;", conn
do until rs.eof
skillID = rs.fields("Skill")
set rs1=Server.CreateObject("ADODB.Recordset")
rs1.open "SELECT SkillID, Assesment FROM tblSkills WHERE SkillID='" & skillID & "';", conn
asstID = rs1.fields("Assesment")
sql = "UPDATE tblMastery SET asstID='" & asstID & "' WHERE Skill='" & skillID & "';"
on error resume next
conn.Execute(sql)
rs.movenext
loop
%>