У меня есть три таблицы, такие как торговля, аванс и займы. Мне нужно создать список, показывающий сумму торговли, займа, а также аванс за каждый месяц, если месяц не иметь торговые средства, он должен отображать его как ноль, но вместо отображения значения как нуля он показывает суммарное значение предыдущих месяцев в следующем месяце, также может кто-нибудь сказать мне, где я ошибаюсь в этом вопросе, так как у меня очень мало знаний в SQLite.Те же значения повторяются в запросе базы данных sqlite
SELECT strftime('%m-%Y', tradedate) as 'month',
(SELECT IFNULL (SUM(tradebalanceamount),0)
FROM farmertradelabel
WHERE farmertradelabel.mobileno = ' 9486032141 '
ORDER BY strftime('%m-%Y', farmertradelabel.tradedate) DESC) AS tradeamount,
(SELECT IFNULL (SUM(advanceamount),0)
FROM advancelabel
WHERE advancelabel.mobileno = '9486032141'
ORDER BY strftime('%m-%Y', advancelabel.advancedate) DESC) AS advanceamount,
(SELECT IFNULL (SUM(loantotalamount),0)
FROM loanlabel
WHERE loanlabel.mobileno = '9486032141'
ORDER BY strftime('%m-%Y', loanlabel.loandate) DESC) AS loanamount
FROM farmertradelabel
Структура таблицы:
Столик Торговца:
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);
Advance Таблица:
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);
Выход:
переформатировать запрос SQL варианта для лучшей читаемости –
Некоторые из значений только суммы таблицы Они не имеют какую-либо проверок даты на них, на основе месяца вы проверяете для. Таким образом, каждая строка SUM та же самая вещь – Doomsknight
Опубликуйте структуру таблиц, чтобы помочь вам – crgarridos