Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / помогите составить запрос / 7 сообщений из 7, страница 1 из 1
01.08.2011, 17:09
    #37375606
demon416nds
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите составить запрос
есть таблицы
Код: plaintext
1.
CREATE TABLE apart (balance NUMERIC, house NUMERIC, id INTEGER PRIMARY KEY, num TEXT, owner TEXT, space NUMERIC);
CREATE TABLE house (apart NUMERIC, id INTEGER PRIMARY KEY, kp TEXT, name TEXT, num TEXT, street TEXT);
поле house таблицы apart содержит id дома из таблицы house
надо составить запрос выдающий все данные из таблицы house + два столбца содержащих количество квартир и сумму балансов квартир по по каждому дому
...
Рейтинг: 0 / 0
01.08.2011, 23:34
    #37376088
Stupid_BOT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите составить запрос
demon416nds,
Код: plaintext
1.
2.
select h.apart, h.id, h.kp, h.name, h.num, h.street, count(*) apart_count, sum(a.balance) sum_apart_balance
from house h inner join apart a on a.house=h.id
group by h.apart, h.id, h.kp, h.name, h.num, h.street;
Дома без апартаментов в результат не попадут.
Если у какого-либо апартамента баланс не указан ( null ) - сумму балансов квартир по такому дому будет null.
etc
...
Рейтинг: 0 / 0
14.08.2011, 12:00
    #37394455
enic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите составить запрос
sqlite3 используется с python3

суть запроса такова:

есть таблица acc_id с двумя полями email и uid
uid - автоинкремент, по умолчанию null

мы достаем из таблицы uid зная email:
select uid from acc_id where email='test@ru.ru'

но если там нет такого имейла, то надо его сначала добавить, чтобы получить новый uid:
insert into acc_id values(null, 'test@ru.ru')

и потом снова сделать select, чтобы получить uid


можно ли как-то исхитриться уместить такое в один запрос?
или можно сделать процедуру (чего в sqlite вроде бы нет)
...
Рейтинг: 0 / 0
15.08.2011, 18:20
    #37396438
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите составить запрос
В один не получится. Но можно сделать вот так:
Код: plaintext
1.
insert or replace into acc_id (email) values ('test@ru.ru');
select uid from acc_id where email='test@ru.ru';
...
Рейтинг: 0 / 0
15.08.2011, 21:30
    #37396670
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите составить запрос
enicsqlite3 используется с python3
enicили можно сделать процедуру (чего в sqlite вроде бы нет)
Язык ХП SQLite - это язык среды, в которой используется SQLite. В твоем случае - это python3.
Одним запросом не получится, White Owl уже сказал об этом.
...
Рейтинг: 0 / 0
16.08.2011, 13:00
    #37397530
MBG
MBG
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите составить запрос
enic,

Можно сделать поле email уникальным и всегда выполнять два запроса:
Код: plaintext
1.
insert or ignore into acc_id values(null, 'test@ru.ru')
select uid from acc_id where email='test@ru.ru'

Конструкция "insert or ignore" проигнорирует вставку уже существующих значений.
...
Рейтинг: 0 / 0
18.08.2011, 09:08
    #37400742
enic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите составить запрос
спасибо!
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / помогите составить запрос / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]