У меня есть этот SQL-запрос:SQL Lite - SUM возвращает нуль вместо значения 0 (ноль)
var sqlQuery =
"SELECT '"+dateRanges[ic].DATE_FROM+"' as DATE_FROM, "+
" '"+dateRanges[ic].DATE_TO+"' as DATE_TO, "+
" COUNT(*) AS DIALS_CNT, "+
" SUM(CASE WHEN dc.call_result = '"+CALL_RESULT_STATE_APPT+"' THEN 1 ELSE 0 END) AS '"+APPT_CNT+"', "+
" SUM(CASE WHEN dc.call_result = '"+CALL_RESULT_STATE_CONV_NO_APPT+"' THEN 1 ELSE 0 END) AS '"+CONVERS_CNT+"' , "+
" SUM(CASE WHEN dc.call_result = '"+CALL_RESULT_STATE_CANNOT_REACH+"' THEN 1 ELSE 0 END) AS '"+CANNOT_REACH_CNT+"' "+
" FROM "+DIALED_CALLS_TABLE+" dc "+
" WHERE dc.date BETWEEN '"+dateRanges[ic].DATE_FROM+"' AND '"+dateRanges[ic].DATE_TO+"';";
Проблема заключается в том, что если сумма значений равна нулю результат, содержащий нулевое значение. Я думал, что могу решить его, используя THEN 1 ELSE 0 END
, но он не работает.
Как я могу решить эту проблему, чтобы получить результат с нулями вместо нуля?
Спасибо за любую помощь.
Просто спрашиваю .. Как вы обработки запроса? Просто интересно, достаточно ли безопасно создавать запрос в javascript, который может легко манипулировать клиентом, поэтому он может быть в простой простой в использовании инъекции. – briosheje
Это мобильное приложение Cordova. – redrom
О, никогда об этом не слышал. В любом случае, возможно, добавьте это в описание, кто-то может с уверенностью помочь вам в этом, зная, что вы используете такую инфраструктуру, обычно небезопасно создавать SQL-запросы с помощью самого javascript. – briosheje