ODBC查询结果--Call Failed

时间:2013-08-03 09:52:18

标签: sql odbc ms-access-2007 outer-join

我正在尝试开发一个新手问题(我认为)。我们有一个SQL服务器数据库,可以从单独的系统日志文件中导入数据。这些文件分解在SQL数据库中的许多表中。我为这有点啰嗦而道歉,但希望它能清楚地解释我遇到问题的地方。

由于我目前的公司限制,我仅限于使用MS Access 2007或Excel 2007前端来查询和分析从日志文件中提取的数据。

我一直在研究一个查询,该查询应该从一个表(包含检查消息)获取所有记录,并根据UnitID从第二个表(一般信息,如果存在)获取一些相应的数据。

所以 - 对于其中一个单位ID使用简单的select语句,我得到51,319条记录。这是应该返回的记录数(结果将进入某些图表以查找消息中的模式)。

    SELECT
      Messages.Timestamp,
      Messages.UnitID,
      Messages.Stuff
    FROM
      Messages
    WHERE
      Messages.UnitID = '4400'
    ORDER BY
      Messages.Timestamp

如果我将其更改为SELECT DISTINCT,我会得到38,024条记录。最终,我不想要这个,因为我需要所有这些,但这会在一段时间内发挥作用 - 所以请耐心等待。

当我尝试将这些结果与“常规信息”表连接时,查询失败 - ODBC - 调用失败

    SELECT
      Messages.TimeStamp,
      Messages.UnitID,
      Messages.Stuff,
      GeneralInfo.MoreStuff
    FROM
      Messages LEFT OUTER JOIN GeneralInfo 
        ON Messages.TimeStamp = GeneralInfo.TimeStamp 
        AND Messages.UnitID = GeneralInfo.UnitID
    WHERE
      Messages.UnitID = '4400'
    ORDER BY
      Messages.TimeStamp

出于病态的好奇心,我将其更改为SELECT DISTINCT并且它有效 - 返回40,810条记录。

什么可能导致我的ODBC失败(我怀疑返回太多记录)? 如果我的怀疑是正确的,为什么联合查询会返回更多我开始使用的简单SELECT查询的记录?

先谢谢 杰森

0 个答案:

没有答案