0

我收到了有据可查的错误:

如果指定了 SELECT DISTINCT,则 ORDER BY 项目必须出现在选择列表中。

这是我的 SQL 语句:

INSERT INTO PropertyList
            (PropertyID, Initials)
SELECT DISTINCT P.PropertyID, "vSTEBCodes"
FROM Property AS P INNER JOIN ValiditySTEBCodes AS VC 
              ON P.ControlNumber=VC.ControlNumber

如您所见,看不到 ORDER BY 语句。大概那里有一个隐含的 ORDER BY ,但我看不到它。

我正在针对链接到 SQL Server 2008 后端的 MS Access 中的链接表运行此语句。当我从完整版的 Access 2002 运行它时,它运行没有问题。如果我尝试从 Access 2000 运行时运行它,我会收到显示的错误。

我知道 Access 倾向于在将查询转发到 ODBC 源(尤其是多记录插入和更新)之前在后台重写查询。我想这可能是问题所在。

4

1 回答 1

1

从评论中编译,尝试:

INSERT INTO dbo.PropertyList(PropertyID, Initials)
  SELECT P.PropertyID, Initials = 'vSTEBCodes' -- alias and single quotes
  FROM dbo.Property AS P -- always use schema prefix
  INNER JOIN dbo.ValiditySTEBCodes AS VC 
  ON P.ControlNumber = VC.ControlNumber
  GROUP BY P.PropertyID  -- instead of DISTINCT
  ORDER BY P.PropertyID; -- maybe overrides Access stupidity
于 2013-03-19T20:47:29.797 回答