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

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Akramjon
Сообщения: 40
Зарегистрирован: 05 окт 2013, 20:26
Контактная информация:

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

Сообщение Akramjon » 04 фев 2014, 10:37

Я пока добился чего хотел. Данный момент у меня есть 2 таблицы в о у обоих все сохраняется по разнымдной БД. Первая приход товаров называется TABLE_GOODS, и вторая таблица расходов TABLE_SELL, id. Обе выводят под разным listview свои данные. Теперь моя задача минусоват товары и вывести их на новый activity или listview Остаток.
Например я сделал новый приход
в TABLE_GOODS 10 шт книг по 5 рублей (например у него id 10)
в TABLE_SELL пищу что продал 4 книг по 10 рублей (например у него id 11)
как мне соединит их вместе чтобы отминусоват (ну как бы id10 - id11 но я сам точно не знаю) и чтобы в результате у меня в listview Остаток показывал
6 книг по 5 рублей (или продано 4 книг по 10 рублей)
я по созданию и сохранению прочитал много и люди помогли
вот теперь это задача очень тяжеловато для меня одного
спасибо большое

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

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

Сообщение Foenix » 04 фев 2014, 12:41

если ты постараешься описать все не так сумбурно, то помогу.
Плюс добавь в это сообщение структуры своих таблиц (мы не можем все помнить кто и что тут писал ранее) и примеры их заполнения (какие там данные) и пример того, что ты хочешь получить. Т.е. не на словах, а поконкретнее.

Например
1 таблица TABLE1
id_ name1 name2
1 ffff sdsdfsf
2 sdfsfs werwr
3 sdfsfsf sdfsfsf

2 таблица TABLE2
...

хочу получить следующее
...
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 » 04 фев 2014, 13:07

Хорошо спасибо
вот здесь создаю 2 таблицы и сохраняю

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

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_GOODS = "users";
    private static final String TABLE_SELL = "sell";

    private static final String KEY_ID = "id";
    private static final String KEY_NAME_GOODS = "name_goods";
    private static final String KEY_DATE = "date";
    private static final String KEY_AMOUNT = "amount";
    private static final String KEY_COST = "cost";

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

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "Create Table " + TABLE_GOODS + "(" + KEY_ID + "INTEGER PRIMARY KEY, " +
                                                            KEY_NAME_GOODS + " TEXT, " +
                                                            KEY_DATE + " TEXT, " +
                                                            KEY_AMOUNT + " TEXT, " +
                                                            KEY_COST + " TEXT);";
        db.execSQL(query);

         query = "Create Table " + TABLE_SELL + "(" + KEY_ID + "INTEGER PRIMARY KEY, " +
                                                            KEY_NAME_GOODS + " TEXT, " +
                                                            KEY_DATE + " TEXT, " +
                                                            KEY_AMOUNT + " TEXT, " +
                                                            KEY_COST + " TEXT);";
        db.execSQL(query);
    }

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

    @Override
    public void addRashod(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(KEY_NAME_GOODS, goods.getName_goods());
        values.put(KEY_DATE, goods.getDate());
        values.put(KEY_AMOUNT, goods.getAmount());
        values.put(KEY_COST, goods.getCost());
        db.insert(TABLE_SELL, null, values);
        db.close();
    }

      @Override
    public void addPrihod(Goods goods) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(KEY_NAME_GOODS, goods.getName_goods());
        values.put(KEY_DATE, goods.getDate());
        values.put(KEY_AMOUNT, goods.getAmount());
        values.put(KEY_COST, goods.getCost());
        db.insert(TABLE_GOODS, null, values);
        db.close();
    }
Здесь в приход активити сохраняю приход

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

 public void saveTovar(View v){
        AlertDialog.Builder builder = new AlertDialog.Builder(Prihod.this);
        builder.setTitle("Потдвердить сохранение...");
        builder.setMessage("Вы уверены, что хотите сохранить?");
        builder.setIcon(R.drawable.save);
        builder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                goods = new Goods(1, edtTovar.getText().toString(),
                        editDate.getText().toString(),
                        editAmount.getText().toString(),
                        editCost.getText().toString());
                db.addPrihod(goods);
                Toast.makeText(getApplicationContext(), "Новый товар сохранен!", Toast.LENGTH_SHORT).show();
            }
        });

        builder.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });

        builder.show();
    }
Здесь сохраняю в расход активити расходы

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

public void saveRashod(View v){
        AlertDialog.Builder builder = new AlertDialog.Builder(Rashod.this);
        builder.setTitle("Потдвердить сохранение...");
        builder.setMessage("Вы уверены, что хотите сохранить?");
        builder.setIcon(R.drawable.save);
        builder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                goods = new Goods(1, editRashod.getText().toString(),
                        editDateRashod.getText().toString(),
                        editAmountRashod.getText().toString(),
                        editCostRashod.getText().toString());
                db.addRashod(goods);
                Toast.makeText(getApplicationContext(), "Новый расход сохранен!", Toast.LENGTH_SHORT).show();
            }
        });

        builder.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });

        builder.show();
    }

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

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

Сообщение Akramjon » 04 фев 2014, 13:09

и картинки
Вложения
3.png
3.png (90.48 КБ) 10044 просмотра
2.png
2.png (85.8 КБ) 10044 просмотра
1.png
1.png (101.91 КБ) 10044 просмотра

behzodbek
Сообщения: 58
Зарегистрирован: 23 дек 2012, 22:58
Откуда: UZB Namangan

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

Сообщение behzodbek » 04 фев 2014, 13:13

Упс тут мой земляк :) Но мало чего понял :(
Изображение

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

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

Сообщение Foenix » 04 фев 2014, 13:20

очень мало данных в таблицах. Расходов же может быть несколько? приходов опять же заведи разных - чтоб можно было оценить правильность запроса
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 » 04 фев 2014, 14:08

добавил новых товаров
Вложения
2.png
2.png (81.37 КБ) 10038 просмотров
1.png
1.png (81.43 КБ) 10038 просмотров

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

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

Сообщение Foenix » 04 фев 2014, 14:37

а где у тебя id товара?
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 » 04 фев 2014, 15:11

сейчас посмотрю по разным id все сохраняла
странно вчера по разным id сохраняла
сейчас обе стороны одинаковые с 1 начинаются
я поковыряюска
Последний раз редактировалось Akramjon 04 фев 2014, 15:20, всего редактировалось 2 раза.

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

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

Сообщение Foenix » 04 фев 2014, 15:16

а так же уникальный идентификатор каждой таблицы перемени на _id
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 » 04 фев 2014, 15:19

Akramjon писал(а):сейчас посмотрю по разным id все сохраняла
Может по русски опишите требование к базе, а Foenix вам уже покажет "рекомендованную" структуру :) И даже запрос нарисует, нравится ей это дело... так ведь проще будет ;)
Изображение

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

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

Сообщение altwin » 04 фев 2014, 15:19

Foenix писал(а):а так же уникальный идентификатор каждой таблицы перемени на _id
а это собственно не обязательно :P
Изображение

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

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

Сообщение Foenix » 04 фев 2014, 15:23

altwin писал(а):
Foenix писал(а):а так же уникальный идентификатор каждой таблицы перемени на _id
а это собственно не обязательно :P
в тебе живет дух противоречия, я и так поняла
Человеку, который ничего пока не умеет и это его первая база данных - просто необходимо иметь порядок в голове и придерживаться рекомендаций гугла в коде.
Так что только _ID!!!
R.id.team

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

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

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

Сообщение Foenix » 04 фев 2014, 15:25

тю блин, теперь поняла :-D в тебе не дух противоречия, подпись все объясняет :-D
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 » 04 фев 2014, 15:28

Foenix писал(а):тю блин, теперь поняла :-D в тебе не дух противоречия, подпись все объясняет :-D
вот именно потому я ее и добавил ;)

P.S. Один из принципов восточной философии гласит: «Нельзя побеждать время от времени – нужно побеждать всегда. Нельзя хорошо поступать время от времени – нужно поступать хорошо всегда. Победа – это привычка. И поражение, к сожалению, тоже». То же и с кодом, хороший код, как и плохой -это тоже привычка, не стоит привыкать к "дурному".
Последний раз редактировалось altwin 04 фев 2014, 15:39, всего редактировалось 1 раз.
Изображение

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

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

Сообщение Akramjon » 04 фев 2014, 15:39

@altwin не надо смеется я не знаю по этому и спрашиваю чего здесь смешного так форум для этого и существует чтобы помогать людям
я вчера хорошо пересмотрел id TABLE_GOODS другая была,id TABLE_SELL другая была не знаю почему сегодня одиноковомы стали

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

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

Сообщение altwin » 04 фев 2014, 15:42

Akramjon писал(а):@altwin не надо смеется я не знаю по этому и спрашиваю чего здесь смешного так форум для этого и существует чтобы помогать людям
я вчера хорошо пересмотрел id TABLE_GOODS другая была,id TABLE_SELL другая была не знаю почему сегодня одиноковомы стали
так я и не смеялся... по поводу того, что изменились таблицы, привыкайте - это магия, нужно проверить по логам, что делали системные "эльфы" и обязательно проверить запущенных "демонов"(простите я не хотел смеяться, просто в компьютере ничего не бывает просто так...), если же вы живете в "православной" системе, мне трудно судить, кто мог совершить диверсию... эта система рождена в пороке.

P.S. вообще я серьезно имел в виду то, что показав свои требования к таблице вам могут дать рекомендуемую структуру, вы сравните со своей и возможно понять будет проще.
Изображение

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

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

Сообщение Akramjon » 04 фев 2014, 15:48

@altwin извините если я вас огорчил может я вас и вправду не правильно понял пожалуйста можете обьяснить ваши слова я попробую найти свою ошибку
что показав свои требования к таблице вам могут дать рекомендуемую структуру, вы сравните со своей и возможно понять будет проще.[/quote]

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

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

Сообщение altwin » 04 фев 2014, 15:56

Akramjon писал(а):@altwin извините если я вас огорчил может я вас и вправду не правильно понял пожалуйста можете обьяснить ваши слова я попробую найти свою ошибку
что показав свои требования к таблице вам могут дать рекомендуемую структуру, вы сравните со своей и возможно понять будет проще.
Вы меня не огорчили, я вообще огорчаться не умею. потому не обращайте внимание ;). По поводу таблицы, у вас была проблема сформировать запрос к двум таблицам одновременно. Забегая вперед, делается это с помощью inner join. Для того, чтобы запрос был оптимальным в первую очередь нужна "правильная" структура самих таблиц, хотя бы для того, чтобы организовать связи. Ну или просто чтобы хватило "мозгов" для того, чтобы запрос составить. Компьютер на много умнее нас и мы не можем все держать в голове, потому и делаем "правильную" структуру, чтобы хоть что -то понять. Исходя из того, что у вас есть, ваши таблицы составленны не совсем корректно и потому написать запрос к ним - это проблема. Потому проще просто изменить их структуру, но чтобы это сделать нужно точно знать что вы будете там хранить, что с этим делать, в общем ваши требования к таблице.
В принципе можно сделать все, но пытаться решить вашу задачу с теми таблицами, которые у вас есть - не правильно, потому никто не может дать ответ.

P.S. Foenix любит базы, придумывать таблицы, организовывать связи... писать всякие там запросы и видеть результат.. а потом оптимизировать и снова оптимизировать :) Вы очень порадуете её дав возможность поиграть в составление "правильной" таблицы и написать к ней красивый запрос :)
Изображение

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

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

Сообщение Foenix » 04 фев 2014, 16:07

Автор темы, дорогой, не обращайте внимания на слова altwin. Чтоб его понимать, его нужно чуть-чуть подольше знать :)
Altwin, солнце, скажи мне свое имя :) И перестань путать человека! Его твоя замудреная ирония вводит в ступор, человек плохо русский знает, а тут ты.
R.id.team

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

Ответить