考虑下表:
ID : int
Quantity : smallint
Price : float(5,2)
我尝试运行以下 query :
从测试GROUP BY ID中选择ID,SUM(数量*价格);
正如预期的那样,这已在MySQL Workbench中正确执行,但是在Qt中却没有发生。
表格中包含以下内容:
| ID | Quantity | Price |
| 1 | 3 | 1.00 |
| 1 | 3 | 2.00 |
| 2 | 3 | 3.00 |
并在Qt中使用以下实现:
qDebug() << "Running...";
QSqlQuery query(myDB);
query.prepare(" SELECT ID, SUM(Quantity * Price) FROM test GROUP BY ID;");
if(!query.exec())
throw "Error";
else{
qDebug() << "Size: " << query.size();
while(query.next()){
qDebug() << query.value(0).toInt();
qDebug() << query.value(1).toFloat();
}
}
qDebug() << "End!";
结果是:
Running...
Size: 2
End!
因此,即使返回的大小为2,该循环也永远不会运行。
奇怪的是,当我将 Price 变量更改为 int 时,问题消失了。
答案 0 :(得分:0)
query.prepare(" SELECT ID, SUM(Quantity * Price) FROM teste GROUP BY ID;");
看起来像您键入表名'teste'