Как минусоват данные с таблицы 2 от таблицы 1

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 12 фев 2014, 09:06

я частных уроков не даю.
Перечитай то, что я уже писала - ты вообще ничего не понимаешь, я даже примеры приводила. Не получается? значит читай литературу.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение altwin » 12 фев 2014, 12:57

стоило бы потратить время на этот курс: http://www.lynda.com/Android-tutorials/ ... 584-2.html (на рутрекере он бесплатный ;)), хотя судя по всему на все эти ссылки никто внимание не обращает .... :)
Изображение

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 12 фев 2014, 13:49

тут не только на ссылки внимания не обращают..
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 17 фев 2014, 18:35

Всем добрый вечер все когда то были новичками
сегодня я помоемому решил все основные проблемы БД у моего приложения
теперь есть и номенклатура как бы старались мне обьяснит и я не смог понять
теперь начнутся новые вопросы по Spinner которому я хочу прирепить лист БД
у меня получалось в Спиннер поставить массив строк без проблем но
БД я не когда не коннектил
если не смогу обращюсь
спасибо вам большое всем кто хотел помочь

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 23 фев 2014, 16:06

Всем привет
нужен совет теперь так как зашел в тупик надеюсь выйти
что я имею и могу
в БД есть 3 таблицы 1-номенклатура 2-приход 3-расход
могу соеденить их вычислять выводить остаток сколько осталось в базе
что я не могу
например делаю приход книга
скажем у него (_id=1)
книга 2014.02.20 100 шт 5$
продал 30 шт осталось 70 шт
теперь опять принесли одинаковые книги
(скажем у него _id=7)
книга 2014.02.22 50 шт 6$
БД считает общий шт 150 это правильно выходить продано 30 шт
но суммирует обоих по 5$ по первоначальному цене 6$ где то остается
как мне сделать так чтобы первые 100 шт по 5 считывать
второй приход 50 шт по 6 считывать
надеюсь смог обяснить мой вопрос
буду благодарен
заранее спасибо

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 23 фев 2014, 16:09

помоемому нужна будет

Код: Выделить всё

public class DBHandlerImpl extends SQLiteOpenHelper implements DBHandler<Goods> {
    private static final int DATABASE_VERSION = 4;
    private static final String DATABASE_NAME = "app_bases";

    private static final String TABLE_ITEMS = "items";
    private static final String ID = "_id";
    private static final String GOODS = "goods";

    private static final String TABLE_PRIHOD = "prihod";
    private static final String ID_PRIHOD = "_id";
    private static final String ID_GOODS = "id_goods";
    private static final String DATE = "date";
    private static final String AMOUNT = "amount";
    private static final String COST = "cost";

    private static final String TABLE_RASHOD = "rashod";
    private static final String ID_PRODANO = "_id";
    // private static final String PRODANO = "prodano";
    private static final String P_DATE = "prodano_date";
    private static final String P_AMOUNT = "prodano_amount";
    private static final String P_COST = "prodano_cost";

    public DBHandlerImpl(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "create table " + TABLE_ITEMS + "(" + ID + " integer primary key autoincrement, " +
                GOODS + " TEXT);";
        db.execSQL(query);

        query = "create table " + TABLE_PRIHOD + "(" + ID_PRIHOD + " integer primary key autoincrement, " +
                ID_GOODS + " integer, " +
                DATE + " TEXT, " +
                AMOUNT + " INTEGER, " +
                COST + " INTEGER);";
        db.execSQL(query);

        query = "create table " + TABLE_RASHOD + "(" + ID_PRODANO + " integer primary key autoincrement, " +
                ID_GOODS + " integer, " +
                P_DATE + " TEXT, " +
                P_AMOUNT + " INTEGER, " +
                P_COST + " INTEGER);";
        db.execSQL(query);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i2) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_ITEMS);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_PRIHOD);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_RASHOD);
        onCreate(db);
    }

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение mdzht » 23 фев 2014, 16:36

Akramjon писал(а):помоемому нужна будет

Код: Выделить всё

public class DBHandlerImpl extends SQLiteOpenHelper implements DBHandler<Goods> {
    private static final int DATABASE_VERSION = 4;
    private static final String DATABASE_NAME = "app_bases";

    private static final String TABLE_ITEMS = "items";
    private static final String ID = "_id";
    private static final String GOODS = "goods";

    private static final String TABLE_PRIHOD = "prihod";
    private static final String ID_PRIHOD = "_id";
    private static final String ID_GOODS = "id_goods";
    private static final String DATE = "date";
    private static final String AMOUNT = "amount";
    private static final String COST = "cost";

    private static final String TABLE_RASHOD = "rashod";
    private static final String ID_PRODANO = "_id";
    // private static final String PRODANO = "prodano";
    private static final String P_DATE = "prodano_date";
    private static final String P_AMOUNT = "prodano_amount";
    private static final String P_COST = "prodano_cost";

    public DBHandlerImpl(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "create table " + TABLE_ITEMS + "(" + ID + " integer primary key autoincrement, " +
                GOODS + " TEXT);";
        db.execSQL(query);

        query = "create table " + TABLE_PRIHOD + "(" + ID_PRIHOD + " integer primary key autoincrement, " +
                ID_GOODS + " integer, " +
                DATE + " TEXT, " +
                AMOUNT + " INTEGER, " +
                COST + " INTEGER);";
        db.execSQL(query);

        query = "create table " + TABLE_RASHOD + "(" + ID_PRODANO + " integer primary key autoincrement, " +
                ID_GOODS + " integer, " +
                P_DATE + " TEXT, " +
                P_AMOUNT + " INTEGER, " +
                P_COST + " INTEGER);";
        db.execSQL(query);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int i, int i2) {
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_ITEMS);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_PRIHOD);
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_RASHOD);
        onCreate(db);
    }
И что не работает?
«Life is too short to spend rewriting code»

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 24 фев 2014, 06:22

Вы помоемому не внимательно прочли что я там сверху написал

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение mdzht » 24 фев 2014, 10:00

Akramjon писал(а): могу соединить их вычислять выводить остаток сколько осталось в базе
Как вы это делаете? Мне кажется вся беда тут
«Life is too short to spend rewriting code»

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 25 фев 2014, 12:37

mdzht писал(а):
Akramjon писал(а): могу соединить их вычислять выводить остаток сколько осталось в базе
Как вы это делаете? Мне кажется вся беда тут
почему вы так думаете можете подсказать
я там стараюсь обьяснить то что я могу делать

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 25 фев 2014, 12:52

мне так нравится ваш диалог
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение mdzht » 25 фев 2014, 13:31

Akramjon писал(а): почему вы так думаете можете подсказать
я там стараюсь обьяснить то что я могу делать
Я говорю вам что причина того что "суммирует обоих по 5$" находится тут "могу соеденить их вычислять". Покажите код как вы вычисляете?
Foenix писал(а):мне так нравится ваш диалог
Тихо
«Life is too short to spend rewriting code»

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Foenix » 25 фев 2014, 23:12

Изображение
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 26 фев 2014, 05:20

А теперь я понял что вы хотели сказать вот код посмотритека

Код: Выделить всё

    @Override
    public List<Goods> getAllOstatka() {
        List<Goods> goodsOstatka = new ArrayList<Goods>();
        String selectQuery = "select  i.goods,p.date as pdate, (select sum(p.amount) from prihod p where p.id_goods=i._id) as prihod, r.prodano_date as rdate, " +
                "(select sum(r.prodano_amount) from rashod r where r.id_goods=i._id) as rashod,  (select sum(p.amount) from prihod p where p.id_goods=i._id) - (select sum(r.prodano_amount) " +
                "from rashod r where r.id_goods=i._id) as itog from items i,prihod p, rashod r where p.id_goods=i._id or r.id_goods=i._id group by i.goods,p.date,r.prodano_date";
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);
        if (cursor.moveToFirst()) {
            do {
                 SpisokOstatka ostatka=new SpisokOstatka();
//                 ostatka.setGoods(cursor.getString(0));
                 ostatka.setPrihoddate(cursor.getString(1));
                 ostatka.setPrihodsumma(cursor.getInt(2));
                 ostatka.setRashoddate(cursor.getString(3));
                 ostatka.setRashodsumma(cursor.getInt(4));
                 ostatka.setTotalsumma(cursor.getInt(5));

                Goods goods = new Goods();
                goods.setName_goods(cursor.getString(0));
                goods.setAmount(String.valueOf(cursor.getInt(2)));
                goods.setSpisokOstatka(ostatka);
                goodsOstatka.add(goods);
            }
            while (cursor.moveToNext());
        }
        db.close();
        return goodsOstatka;
    }

Аватара пользователя
mdzht
Сообщения: 124
Зарегистрирован: 11 ноя 2013, 11:33
Откуда: fock it
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение mdzht » 26 фев 2014, 15:40

Akramjon писал(а):А теперь я понял что вы хотели сказать вот код посмотритека

Код: Выделить всё

    @Override
    public List<Goods> getAllOstatka() {
        List<Goods> goodsOstatka = new ArrayList<Goods>();
        String selectQuery = "select  i.goods,p.date as pdate, (select sum(p.amount) from prihod p where p.id_goods=i._id) as prihod, r.prodano_date as rdate, " +
                "(select sum(r.prodano_amount) from rashod r where r.id_goods=i._id) as rashod,  (select sum(p.amount) from prihod p where p.id_goods=i._id) - (select sum(r.prodano_amount) " +
                "from rashod r where r.id_goods=i._id) as itog from items i,prihod p, rashod r where p.id_goods=i._id or r.id_goods=i._id group by i.goods,p.date,r.prodano_date";
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(selectQuery, null);
        if (cursor.moveToFirst()) {
            do {
                 SpisokOstatka ostatka=new SpisokOstatka();
//                 ostatka.setGoods(cursor.getString(0));
                 ostatka.setPrihoddate(cursor.getString(1));
                 ostatka.setPrihodsumma(cursor.getInt(2));
                 ostatka.setRashoddate(cursor.getString(3));
                 ostatka.setRashodsumma(cursor.getInt(4));
                 ostatka.setTotalsumma(cursor.getInt(5));

                Goods goods = new Goods();
                goods.setName_goods(cursor.getString(0));
                goods.setAmount(String.valueOf(cursor.getInt(2)));
                goods.setSpisokOstatka(ostatka);
                goodsOstatka.add(goods);
            }
            while (cursor.moveToNext());
        }
        db.close();
        return goodsOstatka;
    }
Впредь [syntax=java5]@Override
public List<Goods> getAllOstatka() {
List<Goods> goodsOstatka = new ArrayList<Goods>();
String selectQuery = "select i.goods,p.date as pdate, (select sum(p.amount) from prihod p where p.id_goods=i._id) as prihod, r.prodano_date as rdate, " +
"(select sum(r.prodano_amount) from rashod r where r.id_goods=i._id) as rashod, (select sum(p.amount) from prihod p where p.id_goods=i._id) - (select sum(r.prodano_amount) " +
"from rashod r where r.id_goods=i._id) as itog from items i,prihod p, rashod r where p.id_goods=i._id or r.id_goods=i._id group by i.goods,p.date,r.prodano_date";
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst()) {
do {
SpisokOstatka ostatka=new SpisokOstatka();
// ostatka.setGoods(cursor.getString(0));
ostatka.setPrihoddate(cursor.getString(1));
ostatka.setPrihodsumma(cursor.getInt(2));
ostatka.setRashoddate(cursor.getString(3));
ostatka.setRashodsumma(cursor.getInt(4));
ostatka.setTotalsumma(cursor.getInt(5));

Goods goods = new Goods();
goods.setName_goods(cursor.getString(0));
goods.setAmount(String.valueOf(cursor.getInt(2)));
goods.setSpisokOstatka(ostatka);
goodsOstatka.add(goods);
}
while (cursor.moveToNext());
}
db.close();
return goodsOstatka;
}[/syntax]
Мне гадать ваши таблицы нужно? как тут
стоило бы потратить время на этот курс: http://www.lynda.com/Android-tutorials/ ... 584-2.html (на рутрекере он бесплатный ;)), хотя судя по всему на все эти ссылки никто внимание не обращает .... :)
Читали?
P.S Там Зенит, тут вы, Вы чё договорились что ли...
«Life is too short to spend rewriting code»

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 26 фев 2014, 16:08

Самое главное хороший пример в ссылке думаю она решит мои проблемы

Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

Re: Как минусоват данные с таблицы 2 от таблицы 1

Сообщение Akramjon » 08 мар 2014, 09:22

Поздравляю всех женщин с 8 марта
Всем привет
у меня все получилось все работает
теперь хочу по лучше сохранять БД если так правильно сказать
мне теперь надо разделить БД на 2 раздела
1 Категория
2 Субкатегория

например в Категории телефоны Нокиа, Самсунг, Моторола, ЛЖ
в Нокиа я должен сохранять
1200, 1202, 1208 и тд
в Самсунг я должен сохранять
i9100, s5830, i9300 и тд
сейчас они все по порядку сохраняются
я могу вывести позицию Нокиа скажем она на 2 позиции
как мне остальные модели нокии засунуть на его категорию
я не смог найти честно говоря хороший пример
и какой код использовать может плохо искал
если знает ссылку чтобы прочитать направте
если с кодом теоретически поможете еще лучше
спасибо большое

Ответить