Ошибка при возврате значений SUM из MySQL с QT - PullRequest
0 голосов
/ 18 июня 2019

Учитывая следующую таблицу:

    ID       : int
    Quantity : smallint
    Price    : float(5,2)

Я попытался выполнить следующий запрос :

ВЫБРАТЬ ИД, СУММА (Количество * Цена) ОТtest GROUP BY ID;

Как и ожидалось, это было правильно выполнено в 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 , проблема исчезает.

1 Ответ

0 голосов
/ 18 июня 2019
query.prepare(" SELECT ID, SUM(Quantity * Price) FROM teste GROUP BY ID;");

Похоже, вы опечатали имя вашей таблицы 'teste'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...