Sql 执行计数时运算符的操作数无效

Sql 执行计数时运算符的操作数无效,sql,count,distinct,advantage-database-server,Sql,Count,Distinct,Advantage Database Server,我试图计算表中唯一发票代码的数量。代码是数字,但该字段可能是文本字段。我不知道该怎么检查 当我运行此代码时: SELECT count(DISTINCT DAB050.REC_LIST) as invoice_number from "DAB050.ADT" DAB050 WHERE DAB050.BUCH_DATUM = '2021-02-16' 我得到一个错误: [sql_Query: Error 7200: AQE Error: State = S0000;

我试图计算表中唯一发票代码的数量。代码是数字,但该字段可能是文本字段。我不知道该怎么检查

当我运行此代码时:

SELECT
count(DISTINCT DAB050.REC_LIST) as invoice_number
from "DAB050.ADT" DAB050
WHERE DAB050.BUCH_DATUM = '2021-02-16'
我得到一个错误:

[sql_Query: Error 7200:  AQE Error:  State = S0000;   NativeError = 2124;  [iAnywhere Solutions][Advantage SQL Engine]Invalid operand for operator: COUNT]

我不知道该怎么解决这个问题。有什么提示吗?

我认为在blob、clob、memo或nmemo数据类型上不允许使用不同的操作。如果REC_LIST是其中之一,您可能会收到该错误消息

如果记录列表是备忘录或nmemo,则可以使用SUBSTRING()将其设置为固定大小。您还可以使用CONVERT或CAST函数


我没有访问Advantage的权限,但我在Sybase ASE中运行了一个类似的查询,它可以工作:
从t中选择count(不同的记录列表)作为发票编号,其中buch_数据='2021-02-16'
。也许引擎不太一样。是的。。。这在我的设置中不起作用。我认为只有在某些类型上使用DISTINCT才是当务之急。也许有一种方法可以将我的记录列表转换成另一种格式,在运行中?你这里缺少信息。记录列表的数据类型是什么?什么数据类型是BUCH_数据?您没有向我们提供有关列的数据类型的任何详细信息,但希望我们解释出现无效数据类型错误的原因。你希望我们如何帮助你?