MS Access SQL语句
这里是情况,我作为当地学区的网络开发者工作,我的前任构建了一个自定义应用程序来跟踪孩子的考试成绩。我不是sql专家,所以我遵从主人!MS Access SQL语句
我有内置的MS Access下表:
- 评估 - 这是首要类别的技能表(即数学,阅读等)
- 技能 - 这些是单独的测试,并按评估分类ID
- 掌握 - 学生成绩;目前显示的技能ID
下面,是我的表,因为他们现在。最后一张桌子就是我想要的。
评估表
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,这正是他用时,他内置应用程序
SELECT Mastery.masteryID, Mastery.stuID, Mastery.score, Mastery.skillID, Skills.asstID
FROM Mastery
INNER JOIN Skills
ON Mastery.skillID = Skills.skillID;
在查询设计器(QBE或按示例查询)网格,您需要添加精通表和技能表,并确保Mastery.SkillID
和Skills.SkillID
之间存在关系。
感谢您的回答,我会在早上回到工作时看到这个。我会和你回去的。 – joshmax
我可以通过查询设计器重新创建我的'tblMastery',所以我*可以*将查询结果复制到新表中,但我需要持续更新的永久解决方案。关于如何查询'tblMastery'里面'asstID' **的任何想法,以便每添加一行,都会添加'asstID'?或者这是否需要通过ASP代码中的SQL(在应用程序本身中)添加? – joshmax
我将我的'tblMastery.asstID'列中的SQL更改为'SELECT tblSkills.asstID FROM tblMastery INNER JOIN tblSkills ON tblMastery.skillID = tblSkills.skillID;',并且在单元格的下拉框中显示结果,但不是将asstID与该行的skillID匹配,而是给我一个下拉框来选择asstID。而更糟糕的是,列出的选项是我需要通过该列本身填充的结果。莫名其妙地可以帮助这里吗? – joshmax
如何:
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
感谢您的回答,我会在早上回到工作时看到这个。我会和你回去的。 – joshmax
这就是我最终用来更新我的4k +行。在运行这个之前,我在DB中创建了一个名为asstID
的新列。
说明: - 环通过tblMastery &从各行 抢tblMastery.skillID的值 - 连接到tblSkills &抢tblSkills.asstID的其中tblSkills.skillID匹配tblMastery.skillID 值 - 更新tblMastery.asstID与从tblSkills.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
%>
楼下,在答案中,我还说,我使用相应的信息来更新表中的ASP代码,以防万一别人运行到这样的问题。 – joshmax