Mysql &引用;类型不匹配,预期AutoInc实际长字“;关于FDQuery(delphixe6)

Mysql &引用;类型不匹配,预期AutoInc实际长字“;关于FDQuery(delphixe6),mysql,delphi,delphi-xe6,firedac,Mysql,Delphi,Delphi Xe6,Firedac,我们使用Delphi XE6,有错误的组件是MySQL 4.1中的TFDQuery 当我尝试使用组打开查询时,FDQuery显示: 类型不匹配,应为实际长单词 在字段编辑器中,字段是正确的,它显示AutoInc,但如果我在查询时删除group by,错误停止,但结果是错误的,并且当我删除字段编辑器的所有字段并重试时,工作正常 我试图在字段编辑器中手动插入一个字段作为整数字段,但它也不起作用 我的表格中有错误的字段(NUMBOLE)是一个整数字段,AutoInc(主键来自tabbolvenda)

我们使用Delphi XE6,有错误的组件是MySQL 4.1中的TFDQuery

当我尝试使用组打开查询时,FDQuery显示:

类型不匹配,应为实际长单词

在字段编辑器中,字段是正确的,它显示
AutoInc
,但如果我在查询时删除
group by
,错误停止,但结果是错误的,并且当我删除字段编辑器的所有字段并重试时,工作正常

我试图在字段编辑器中手动插入一个字段作为
整数
字段,但它也不起作用

我的表格中有错误的字段(
NUMBOLE
)是一个
整数
字段,
AutoInc
(主键来自tabbolvenda)

FDQuery1.关闭;
FDQuery1.SQL.Clear;
FDQuery1.SQL.Add('select');
FDQuery1.SQL.Add('b.NUMVENDA',);
FDQuery1.SQL.Add('a.DATAVENDA',);
FDQuery1.SQL.Add('b.NUMBOLE',);
FDQuery1.SQL.Add('b.PARCELAS',);
FDQuery1.SQL.Add('a.CODCLIENTE',);
FDQuery1.SQL.Add('a.NOMECLIENTE',);
FDQuery1.SQL.Add('b.DATAVTO',);
FDQuery1.SQL.Add('a.MONTANTE',);
FDQuery1.SQL.Add('b.DATAPTO');
FDQuery1.SQL.Add('if(b.EMABERTO='True','Sim','Não')作为EMABERTO,);
FDQuery1.SQL.Add('a.CUSTOVENDA',);
FDQuery1.SQL.Add('a.LUCROVENDA',);
FDQuery1.SQL.Add('a.COMISSAO');
FDQuery1.SQL.Add('from tabvendas a internal join tabbolvenda b');
FDQuery1.SQL.Add('on a.NUMVENDA=b.NUMVENDA');

FDQuery1.SQL.Add('group by b.NUMVENDA order by b.NUMVENDA') 如果不使用聚合函数,则select中的字段数必须等于group by中的字段数
发件人:

其中
expression1,expression2。。。表达式

未封装在聚合函数中且必须包含在SQL语句末尾的
GROUP BY
子句中的表达式。

如果不使用聚合函数,select中的字段数必须等于GROUP BY中的字段数
发件人:

其中
expression1,expression2。。。表达式

未封装在聚合函数中且必须包含在SQL语句末尾的
GROUP BY
子句中的表达式。

如果不使用聚合函数,select中的字段数必须等于GROUP BY中的字段数
发件人:

其中
expression1,expression2。。。表达式

未封装在聚合函数中且必须包含在SQL语句末尾的
GROUP BY
子句中的表达式。

如果不使用聚合函数,select中的字段数必须等于GROUP BY中的字段数
发件人:

其中
expression1,expression2。。。表达式

未封装在聚合函数中且必须包含在SQL语句末尾的
GROUP BY
子句中的表达式。

MySQL在包含或不包含GROUP BY的SELECT列表中更改auto inc列数据类型。当使用GROUP BY查询时,您是否创建了持久字段?当MySQL在包含和不包含GROUP BY的SELECT列表中时,它会更改auto inc列数据类型。当使用GROUP BY查询时,您是否创建了持久字段?当MySQL在包含和不包含GROUP BY的SELECT列表中时,它会更改auto inc列数据类型。当使用GROUP BY查询时,您是否创建了持久字段?当MySQL在包含和不包含GROUP BY的SELECT列表中时,它会更改auto inc列数据类型。当使用GROUP BY查询时,是否创建了持久字段?这对于ANSI SQL是正确的,可能是其他数据库。MySQL允许在选择列表中包含非聚合列:这对于ANSI SQL是正确的,可能是其他一些DB。MySQL允许在选择列表中包含非聚合列:这对于ANSI SQL是正确的,可能是其他一些DB。MySQL允许在选择列表中包含非聚合列:这对于ANSI SQL是正确的,可能是其他一些DB。MySQL允许在选择列表中包含非聚合列:
  FDQuery1.Close;
  FDQuery1.SQL.Clear;
  FDQuery1.SQL.Add('select');
  FDQuery1.SQL.Add('b.NUMVENDA,');
  FDQuery1.SQL.Add('a.DATAVENDA,');
  FDQuery1.SQL.Add('b.NUMBOLE,');
  FDQuery1.SQL.Add('b.PARCELAS,');
  FDQuery1.SQL.Add('a.CODCLIENTE,');
  FDQuery1.SQL.Add('a.NOMECLIENTE,');
  FDQuery1.SQL.Add('b.DATAVTO,');
  FDQuery1.SQL.Add('a.MONTANTE,');
  FDQuery1.SQL.Add('b.DATAPTO,');
  FDQuery1.SQL.Add('if(b.EMABERTO = ''True'', ''Sim'',''Não'') as EMABERTO,');
  FDQuery1.SQL.Add('a.CUSTOVENDA,');
  FDQuery1.SQL.Add('a.LUCROVENDA,');
  FDQuery1.SQL.Add('a.COMISSAO');
  FDQuery1.SQL.Add('from tabvendas a inner join tabbolvenda b');
  FDQuery1.SQL.Add('on a.NUMVENDA = b.NUMVENDA');
  FDQuery1.SQL.Add('group by b.NUMVENDA order by b.NUMVENDA'); <--- if I remove this group by it works
  FDQuery1.Open;
SELECT expression1, expression2, ... expression_n, 
       aggregate_function (aggregate_expression)
FROM tables
WHERE conditions
GROUP BY expression1, expression2, ... expression_n;