首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLITE查询GROUP BY with SUM使用Delphi和Zeos

SQLITE查询GROUP BY with SUM使用Delphi和Zeos
EN

Stack Overflow用户
提问于 2021-01-21 01:01:38
回答 1查看 84关注 0票数 1

我有一个应用程序创建使用德尔福XE3访问SQLite数据库与Zeos组件。

SQLite中返回3行的select命令:

代码语言:javascript
复制
 select p.descricao, pg.valor
from pagamento pg
inner join venda v on pg.origem = 'venda' and v.id_venda = pg.id_origem
left join pagamento_tipo p on pg.id_pagamento_tipo = p.id_pagamento_tipo
where v.data >= '2021-01-19' and v.data <= '2021-01-19'
and v.ra_status_venda in ( 'Finalizado', 'Pedido')

但是当我放入group命令时,信息结果是错误的。

代码语言:javascript
复制
    select p.descricao, sum(pg.valor) as valor
from pagamento pg
inner join venda v on pg.origem = 'venda' and v.id_venda = pg.id_origem
left join pagamento_tipo p on pg.id_pagamento_tipo = p.id_pagamento_tipo
where v.data >= '2021-01-19' and v.data <= '2021-01-19'
and v.ra_status_venda in ( 'Finalizado', 'Pedido')
group by descricao

P02不是sum。

而且,如果我对所有行求和,而不使用group by,那么值也是正确的。

代码语言:javascript
复制
select sum(pg.valor) as valor
from pagamento pg
inner join venda v on pg.origem = 'venda' and v.id_venda = pg.id_origem
left join pagamento_tipo p on pg.id_pagamento_tipo = p.id_pagamento_tipo
where v.data >= '2021-01-19' and v.data <= '2021-01-19'
and v.ra_status_venda in ( 'Finalizado', 'Pedido')

PS:在另一个周期中,这个命令的总和是正确的。PS2我使用的是windows的32位动态链接库。

EN

回答 1

Stack Overflow用户

发布于 2021-01-21 21:59:38

使用提示@Shawn和@forpas我解决了这个问题,字段NUMERIC的SQLite类型在运行时select命令中将数字转换为其他类型,如何前两个值是整数,最后一个值是实数,显然我的程序不能识别同一列中的两个不同类型。

为了解决这个问题,我将数据库中的字段类型从数字改为实数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65814104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档