Вы должны использовать предложение IN:
... AND strftime('%m',Datum) IN ('02', '04', '12')
Но вам определенно не следует использовать конкатенацию строк для динамической установки параметров в вашем запросе.Это лучший способ пострадать от атак SQL-инъекций.Используйте подготовленные операторы с ?
заполнителем для каждого из ваших параметров:
SELECT sum(Betrag) FROM record WHERE strftime('%Y',Datum) = ? ...
Узнайте больше о подготовленных утверждениях в учебнике JDBC .
Вы действительнодолжен использовать какой-то цикл или утилиту для построения предложения IN.StringUtils
от commons-lang полезен здесь:
"... AND strftime('%m',Datum) IN (" + StringUtils.repeat("?", ", ", months.size())