Я разрабатываю приложение, в котором я попытался отобразить значения в типе книги, для которых я использовал концепции внутреннего соединения для двух таблиц с именем daybook и tradetable. В дневнике в нем хранятся такие значения, как сумма, которую получил пользователь, сумма аванса, которую получил пользователь, а также другие данные, где, как и в tradetable, хранится информация о платежах.Sqlite Inner join повторяет одно и то же значение для определенного столбца в каждой строке
Daybook стол:
String CREATE_DAYBOOK = "CREATE TABLE " + DAYBOOK_DETAILS + "("
+ DAYBOOK_ID + " INTEGER PRIMARY KEY,"
+ DAYBOOK_DATE + " TEXT,"
+ DAYBOOKUSER_TYPE + " TEXT,"
+ DAYBOOK_AMOUNT_IN + " NUMERIC,"
+ DAYBOOK_AMOUNT_OUT + " NUMERIC,"
+ DAYBOOK_NAME + " TEXT,"
+ DAYBOOK_MOBILENO + " NUMERIC,"
+ DAYBOOK_DESCRIPTION + " TEXT,"
+ DAYBOOK_TYPE + " TEXT" + ");";
db.execSQL(CREATE_DAYBOOK);
Tradetable:
String CREATE_TRADE_TABLE = "CREATE TABLE " + TRADE_LABELS + "("
+ TRADE_ID + " INTEGER PRIMARY KEY,"
+ TRADE_DATE + " TEXT,"
+ TRADE_FARMERNAME + " TEXT,"
+ TRADE_FMOBILENO + " NUMERIC,"
+ TRADE_BILLNO + " NUMERIC,"
+ COCONUT_NO + " NUMERIC,"
+ COCONUT_COST + " NUMERIC,"
+ TOTAL_AMOUNT + " NUMERIC,"
+ TRADE_ADVANCE_AMOUNT + " NUMERIC,"
+ BALANCE_AMOUNT + " NUMERIC,"
+ NOTES + " TEXT,"
+ SETTLED + " TEXT" + ");";
db.execSQL(CREATE_TRADE_TABLE);
Запрос:
String selectquery = "SELECT daybookdetails.date,\n" +
" IFNULL(amountin,0) AS tradetotal,\n" +
" IFNULL(amountout,0) AS advancetotal,\n" +
" IFNULL(advanceamt,0),\n" +
" daybookdescription,\n" +
" daybooktype\n" +
"FROM farmertradelabel\n" +
"INNER JOIN daybookdetails ON farmertradelabel.mobileno = daybookdetails.mobileno\n" +
"WHERE daybookname = '"+fname+"'\n" +
" AND daybookdetails.mobileno = '"+fmobno+"'\n" +
"GROUP BY daybookdetails.date\n" +
"ORDER BY daybookdetails.date ASC";
Я дал условие о том, как следует:
if (cursor.getString(3).startsWith("0")) {
ledgerView.setBalance(cursor.getString(2));
} else {
double one = Double.parseDouble(cursor.getString(1)) - Double.parseDouble(cursor.getString(3));
ledgerView.setAdvancegiven(String.valueOf(one));
ledgerView.setBalance(cursor.getString(3));
}
выход, который я ожидал должен быть таким:
Но выход, который я получаю следующим образом:
В Actual выходе дебет капитала повторяет одни и те же значения в каждой строке я пробовал использовать различные, но все же он показывает тот же output.can кто-нибудь сказать мне, что неправильно в запросе, который я использовал.