我希望Field4
按降序查看记录,但是当我输入代码BY mybuffer.Field4 DESCENDING
时,我收到错误
“Field4 DESCENDING”之后不可理解(247)[翻译]。
FOR EACH mybuffer
WHERE mybuffer.Field1 = value1
AND mybuffer.Field2 = value2
AND mybuffer.Field3 >= value3
BY mybuffer.Field4 DESCENDING
USE-INDEX myindex
NO-LOCK:
/* do something */
END.
我做错了什么?
答案 0 :(得分:1)
虽然我不确定USE-INDEX和BY的组合是否聪明。但是你的问题很可能是选项的顺序。
按此顺序使用:
答案 1 :(得分:1)
错误是USE-INDEX“在字段4降序后”的位置。就像错误信息所说的那样。
正确的语法是:
for each customer no-lock use-index cust-num
where sales-rep = "BBB"
by city:
display customer.
end.
FWIW在FOR EACH循环中同时使用USE-INDEX并不太可能是一个好主意,并且将它与BY组合起来的可能性更小。如果允许,编译器可能会选择更好的索引(或索引复数)。