#android #sqlite
#Android #sqlite
Вопрос:
У меня есть три таблицы в sqlite trade, loan и advance, в которых я хочу суммировать все общие значения каждой таблицы за каждый месяц предположим, что если в текущем месяце в loan нет записей, то он должен отображать его как 0, но когда я использовал концепцию inner join, значение удваивается, а также увеличивается.сумма кредита отображает общее количество кредитов
Таблица торговли:
String CREATE_FARMERTRADE_TABLE = "CREATE TABLE " FARMERTRADE_LABELS "("
TRADE_ID " INTEGER PRIMARY KEY,"
TRADE_DATE " TEXT,"
TRADE_MOBNO " TEXT,"
TRADE_COCONUTTYPE " TEXT,"
TRADE_TOTALCOCONUT " TEXT,"
TRADE_COCONUTCOST " TEXT,"
TRADE_TOTALAMOUNT " TEXT,"
TRADE_AMOUNTPAID " TEXT,"
TRADE_BALANCEAMT " TEXT" ");";
db.execSQL(CREATE_FARMERTRADE_TABLE);
Предварительная таблица:
String CREATE_ADVANCE_TABLE = "CREATE TABLE " ADVANCE_LABELS "("
ADVANCE_ID " INTEGER,"
ADVANCE_DATE " TEXT,"
ADVANCE_USERTYPE " TEXT,"
ADVANCE_MOBNO " TEXT PRIMARY KEY,"
ADVANCE_AMOUNT " TEXT,"
ADVANCE_REASON " TEXT" ");";
db.execSQL(CREATE_ADVANCE_TABLE);
Таблица заимствования:
String CREATE_LOAN_TABLE = "CREATE TABLE " LOAN_LABELS "("
LOAN_ID " INTEGER,"
LOAN_DATE " TEXT,"
LOAN_USERTYPE " TEXT,"
LOAN_MOBNO " TEXT PRIMARY KEY,"
LOAN_AMOUNT " TEXT,"
LOAN_INTEREST " TEXT,"
LOAN_PERIOD " TEXT,"
LOAN_DUEDATE " TEXT,"
LOAN_REASON " TEXT,"
LOAN_TOTALAMOUNT " TEXT" ");";
db.execSQL(CREATE_LOAN_TABLE);
Запрос:
String selectQuery = "SELECT SUM(tradetotalamount) as totalamount, SUM(tradebalanceamount) as balanceamt, strftime('%m-%Y', tradedate) as 'month',SUM(advanceamount) as advanceamt, SUM(loanamout) as loanamt "
" FROM " FARMERTRADE_LABELS " INNER JOIN advancelabel ON farmertradelabel.mobileno = advancelabel.mobileno INNER JOIN loanlabel ON loanlabel.mobileno = farmertradelabel.mobileno WHERE " FARMERTRADE_LABELS "." TRADE_MOBNO " = " mobno " "
"AND tradedate BETWEEN (select min(tradedate) from farmertradelabel) AND (select max(tradedate) from farmertradelabel)"
" GROUP BY strftime('%m-%Y', farmertradelabel.tradedate) ORDER BY strftime('%m-%Y', farmertradelabel.tradedate) DESC ";
Как я могу выбрать все три значения таблицы в одной таблице, а также, если конкретная таблица не имеет никакого значения для этого конкретного месяца, тогда как я могу показать это значение как ноль?. спасибо
Комментарии:
1. проверьте здесь androidhive.info/2013/09 /… для работы с несколькими таблицами и проверки условия, например, если запрос ничего не возвращает, установите значения вручную .. или используйте константу по умолчанию для определенного столбца.
2. Пожалуйста, предоставьте некоторые примеры данных и желаемый результат. (См. Как форматировать таблицы SQL в сообщении Stack Overflow? для того, чтобы добавить некоторые.)