MS Access从SQLServer存储过程获取不一致的结果

时间:2013-02-06 14:18:06

标签: sql-server ms-access-2007

我正在为一个正在为客户工作的项目遇到一个奇怪的问题。我有一个Access 2007数据库从SQLServer存储过程中获取数据。几个SP正常工作。一个SP工作,然后我们添加了一个字段。该字段已存在于源表中。

最初,该表会给我一个school_code(密钥)和一个grade_name。我们添加了一个序列号,因此grade_names列表将按特定顺序显示。在我们添加序列号之前,我会得到我预期的列表...对于给定的学校,我得到一个列表,如'PK','K','1','2'等。

在添加序列号后,我在列表中获得了相同数量的项目,但列表中的每个项目对于给定的学校都是相同的,即它们都是“PK”并且它们的序列号都是' 1' 。

当我使用SQL工具查看存储过程时,列表看起来正确。当我通过Access查看时,列表只显示给定学校的重复项。从学校到学校,grade_name将显示该学校的第一个grade_name。序列列中的每个值都是'1'。

关于如何攻击这个的任何想法? 谢谢!

1 个答案:

答案 0 :(得分:0)

好的,看起来该问题与DISTINCT关键字相关联。当我把它包括在内时,我得到了我期望的答案。当我将该条款添加到“ORDER BY sequence”时,我被禁止使用DISTINCT;两者不能一起使用。

为了解决这个问题,我删除了ORDER BY,将结果放入一个二维数组中,然后对数组进行排序并使用它。有点像kludge,因为我不明白为什么丢弃DISTNCT引起了问题......