Topic: не удалось преобразовать

s:= SQLExecute('SELECT SUM(sumInPrice.inPrice) FROM sumInPrice LEFT OUTER JOIN servise ON servise.id=sumInPrice.id_servise WHERE servise.id='+ frmServiceCen.tgList.sqlValue);
    frmAppl.eDolg.Text:='Сумма долга:  '+ IntToStr(SQLExecute('SELECT SUM(listWorkOff.priceWorkOff * listWorkOff.klVoWorkOff)-"'+s+'" FROM listWorkOff LEFT OUTER JOIN servise ON servise.id=listWorkOff.id_servise WHERE servise.id='+ frmServiceCen.tgList.sqlValue));

вдруг стала вызывать ошибку
https://downloader.disk.yandex.ru/preview/04b98e71537999899609a1d39982b008432b0b58e8c396812cdbf3ff2e21a507/5c1b5ddb/QgoGVNytx9bepU7FCcD6wZrvpvo8TOa1Os0mQbmx2j5VT1VWDlOIgTLcq6EEr43DbXVwkImrQy-TovTym5USJQ%3D%3D?uid=0&filename=www.jpg&disposition=inline&hash=&limit=0&content_type=image%2Fjpeg&tknv=v2&size=2048x2048

Re: не удалось преобразовать

нашел ошибку поля были текстовые

Re: не удалось преобразовать

поторопился (((
Нашел причину, ошибка возникает когда поля пустые

4 (edited by sibprogsistem 2018-12-20 08:29:49)

Re: не удалось преобразовать

IFNULL решает

s:= SQLExecute('SELECT IFNULL (SUM(sumInPrice.inPrice),0) FROM sumInPrice LEFT OUTER JOIN servise ON servise.id=sumInPrice.id_servise WHERE servise.id='+ frmServiceCen.tgList.sqlValue);
    frmAppl.eDolg.Text:='Сумма долга:  '+ IntToStr(SQLExecute('SELECT IFNULL (SUM(listWorkOff.priceWorkOff * listWorkOff.klVoWorkOff), 0)-"'+s+'" FROM listWorkOff LEFT OUTER JOIN servise ON servise.id=listWorkOff.id_servise WHERE servise.id='+ frmServiceCen.tgList.sqlValue));

Re: не удалось преобразовать

Если используете SQLite, то можете SUM заменить на TOTAL, тогда IFNULL не нужен.

Dmitry.