Как сгруппировать данные в sqlite

#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? для того, чтобы добавить некоторые.)