0
我得到了充分證明錯誤:ORDER BY項目必須出現......但我沒有ORDER BY子句
ORDER BY items must appear in the select list if SELECT DISTINCT is specified.
這裏是我的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,但我看不到它。
我對MSAP中鏈接到SQL Server 2008後端的鏈接表運行這條語句。當我從完整版本的Access 2002運行它時,它運行正常。如果我嘗試從Access 2000運行時運行它,則會收到顯示的錯誤。
我知道Access在將它們轉發到ODBC源(尤其是多記錄INSERT和UPDATE)之前,有一種在後臺重新編寫查詢的傾向。我在想這可能是問題。
這是說,「如果指定SELECT DISTINCT ORDER BY項目必須出現在選擇列表中。」你需要在那裏提供一個ORDER BY子句來使它工作。 – 2013-03-19 20:15:07
也許Access會爲你添加一個ORDER BY。什麼是「vSTEBCodes」?這應該是一個字符串文字,一個列名,還有其他的東西?如果它應該是一個字符串,請嘗試使用「單引號」,並嘗試使用「GROUP BY P.PropertyID」而不是「DISTINCT」。 – 2013-03-19 20:15:16
@ AwesomeProgrammer不,這不是錯誤信息所說的。儘管每個陳述*應該*可能具有可預測和可重複的ORDER BY,但是沒有這樣的要求。 – 2013-03-19 20:16:05