Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite 3, запрос с вычислениями / 3 сообщений из 3, страница 1 из 1
22.08.2009, 17:11
    #36158222
Michael222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite 3, запрос с вычислениями
Есть запрос:

select
id,
ic,
(select sum ((strftime("%s",table2.endtime)-strftime("%s",table2.begintime))*table1.power)
from table2 where table1.id=table1_id),
(select min(point) from points where points.table1_id=table1.id
and point >=
(select sum ((strftime("%s",table2.endtime)-strftime("%s",table2.begintime))*table2.power)
from table2 where table1.id=table2.table1_id)
)
from table1;

(запрос немного переделан)

Можно ли не вычислять повторно (select sum...), и обойтись при этом одним запросом?
...
Рейтинг: 0 / 0
22.08.2009, 17:41
    #36158245
Michael222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite 3, запрос с вычислениями
прошу прощения, забыл про форматирование.
Есть запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT
id,
ic,
(SELECT SUM ((STRFTIME("%s",table2.endtime)-STRFTIME("%s",table2.begintime))*table1.power)
FROM table2 WHERE table1.id=table1_id),
(SELECT MIN(point) FROM points WHERE points.table1_id=table1.id
AND point >=
(SELECT SUM ((STRFTIME("%s",table2.endtime)-STRFTIME("%s",table2.begintime))*table2.power)
FROM table2 WHERE table1.id=table2.table1_id)
)
FROM table1;

(запрос немного переделан)

Можно ли не вычислять повторно (select sum...), и обойтись при этом одним запросом?
...
Рейтинг: 0 / 0
22.08.2009, 18:57
    #36158289
QQs
QQs
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQLite 3, запрос с вычислениями
Код: plaintext
1.
2.
3.
4.
5.
SELECT SUM(t.S1) FROM ( SELECT id,ic,
(SELECT SUM ((STRFTIME("%s",table2.endtime)-STRFTIME("%s",table2.begintime))*table1.power)
FROM table2 WHERE table1.id=table1_id) S1,
(SELECT MIN(point) FROM points WHERE points.table1_id=table1.id
AND point >= (SELECT SUM ((STRFTIME("%s",table2.endtime)-STRFTIME("%s",table2.begintime))*table2.power)
FROM table2 WHERE table1.id=table2.table1_id) S2 ) FROM table1 ) t;

Примерно так.
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / SQLite 3, запрос с вычислениями / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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