powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / SQLite [игнор отключен] [закрыт для гостей] / помогите составить запрос
7 сообщений из 7, страница 1 из 1
помогите составить запрос
    #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
помогите составить запрос
    #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
помогите составить запрос
    #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
помогите составить запрос
    #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
помогите составить запрос
    #37396670
Фотография Dmitry Arefiev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
enicsqlite3 используется с python3
enicили можно сделать процедуру (чего в sqlite вроде бы нет)
Язык ХП SQLite - это язык среды, в которой используется SQLite. В твоем случае - это python3.
Одним запросом не получится, White Owl уже сказал об этом.
...
Рейтинг: 0 / 0
помогите составить запрос
    #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
помогите составить запрос
    #37400742
enic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / помогите составить запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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