问题描述
我正在尝试创建一个函数来返回一组记录中的第n个值。该函数返回的值不正确,所以我自己尝试了SELECT语句,发现SELECT语句也返回了错误的值。
这是正在发生的事情
以下选择语句
SELECT t1.ActualArea AS ActualArea,(t1.Answer * t2.Answer) AS multiple
FROM
((Assessments.SURVEY_ANSWER t1 INNER JOIN Assessments.SURVEY_ANSWER t2
ON
(t1.Survey_Date_ID = t2.Survey_Date_ID)
AND (t1.ActualArea = t2.ActualArea)
AND (t1.Survey_Question_ID = '1')
AND (t2.Survey_Question_ID = '2')))
WHERE (t1.Survey_Date_ID = 65)
ORDER BY multiple DESC
返回以下数据(按预期顺序排列)
ActualArea multiple
Sports 18
English 16
Math 16
Algebra 16
Life Science 16
Earth Science 16
Health 16
Social Studies 16
Geography 16
French 16
Spanish 16
Computer Science 16
Art 16
Home Economics 16
Woodshop 16
Metal Shop 16
Business Technology 16
Band 16
Choir 16
Drama 16
Poetry 16
Debate 16
Journalism 16
Ceramics 16
Music Theory 16
Performing Arts 16
Videography 16
Photography 16
Reading 9
Geometry 8
但是我需要在查询中返回第n条记录。
我为什么要尝试此语句
SELECT t1.ActualArea AS ActualArea,(t1.Answer * t2.Answer) AS multiple
FROM
((Assessments.SURVEY_ANSWER t1 INNER JOIN Assessments.SURVEY_ANSWER t2
ON
(t1.Survey_Date_ID = t2.Survey_Date_ID)
AND (t1.ActualArea = t2.ActualArea)
AND (t1.Survey_Question_ID = '1')
AND (t2.Survey_Question_ID = '2')))
WHERE (t1.Survey_Date_ID = 65)
ORDER BY multiple DESC LIMIT n,1
对于n的不同值,我得到以下信息
0 Sports
1 Photography(?)
2 Math
3 Photography(???)
4 Algebra
5 Life Science
6 Earth Science
当我将代码更改为
LIMIT n,2
它再次返回预期的两条记录。
任何人都可以阐明这一点吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)