powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Запрос для нескольких диапазонов
4 сообщений из 4, страница 1 из 1
Запрос для нескольких диапазонов
    #38528079
Michael222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. БД SQLite. Имеются следующие таблицы:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
CREATE TABLE party(
id integer primary key autoincrement,
ic text not null,
party_number text not null,
%% ........
)

CREATE TABLE partytimes(
id integer primary key autoincrement not null,
party_id integer not null,
begin_id integer not null,
end_id integer not null,
%% ..........
)

CREATE TABLE times(
id integer primary key autoincrement not null,
meas_time real not null,
p real not null default 0
);



Здесь party - описание партии компонентов,
times - время проведения измерения и измеряемая величина (значения снимаются с прибора с интервалом 0,5 с),
partytimes - интервалы, в которых происходило измерение. Поля begin_id и end_id в этой таблице - id начала и окончания измерений в таблице times для одного интервала. Интервалов, как правило, несколько. Вопрос: как одним запросом вывести все строки из таблицы times для всех интервалов измерений конкретной партии?

Спасибо.
...
Рейтинг: 0 / 0
Запрос для нескольких диапазонов
    #38528110
Michael222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот заполненные таблицы.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
CREATE TABLE party(
id integer primary key autoincrement,
ic text not null,
party_number text not null
);
CREATE TABLE partytimes(
id integer primary key autoincrement not null,
party_id integer not null,
begin_id integer not null,
end_id integer not null
);
CREATE TABLE times(
id integer primary key autoincrement not null,
meas_time real not null,
p real not null default 0
);

insert into party values (1,"1526LA8","123");

INSERT INTO times VALUES(332478,1389771008486.0,9.97973341088301282332e+01);
INSERT INTO times VALUES(332479,1389771008586.0,1.00534868681286454266e+02);
INSERT INTO times VALUES(332480,1389771008686.0,1.00343730142155976639e+02);
INSERT INTO times VALUES(332481,1389771008787.0,9.98353616715890694859e+01);
INSERT INTO times VALUES(332482,1389771008887.0,9.98663841569976824547e+01);
INSERT INTO times VALUES(332483,1389771008986.0,1.00160597405711612848e+02);
INSERT INTO times VALUES(332484,1389771009086.0,9.96992630259254894974e+01);
INSERT INTO times VALUES(332485,1389771009187.0,1.00189618440448697351e+02);
INSERT INTO times VALUES(332486,1389771009286.0,1.00152591603025499012e+02);
INSERT INTO times VALUES(332487,1389771009386.0,9.99684581412453638921e+01);
INSERT INTO times VALUES(332488,1389771009487.0,1.00031503837398346942e+02);
INSERT INTO times VALUES(332489,1389771009586.0,1.00233650355222195574e+02);
INSERT INTO times VALUES(332490,1389771009686.0,9.99434400078513220967e+01);
INSERT INTO times VALUES(332491,1389771009786.0,9.97202782579764743751e+01);
INSERT INTO times VALUES(332492,1389771009886.0,1.00007486429340076484e+02);
INSERT INTO times VALUES(332493,1389771009986.0,9.98133457142023132729e+01);
INSERT INTO times VALUES(332494,1389771010086.0,1.00025499485383775779e+02);
INSERT INTO times VALUES(332495,1389771010187.0,9.96342158791009779861e+01);                                                                                              
INSERT INTO times VALUES(332496,1389771010286.0,1.00475825886476513918e+02);                                                                                              
INSERT INTO times VALUES(332497,1389771010386.0,1.00500844019870555707e+02);                                                                                              
INSERT INTO times VALUES(332498,1389771010486.0,9.98193500662168702302e+01);                                                                                              
INSERT INTO times VALUES(332499,1389771010586.0,1.00246659784587095027e+02);                                                                                              
INSERT INTO times VALUES(332500,1389771010686.0,9.96772470685387190769e+01);                                                                                              
INSERT INTO times VALUES(332501,1389771010786.0,9.95741723589552805116e+01);                                                                                              
INSERT INTO times VALUES(332502,1389771010886.0,9.97392920393559450058e+01);                                                                                              
INSERT INTO times VALUES(332503,1389771010986.0,1.00284687347346050504e+02);                                                                                              
INSERT INTO times VALUES(332504,1389771011086.0,1.00344730867491733756e+02);                                                                                              
INSERT INTO times VALUES(332505,1389771011186.0,1.00438799049053343996e+02);                                                                                              
INSERT INTO times VALUES(332506,1389771011286.0,9.97513007433850873439e+01);                                                                                              
INSERT INTO times VALUES(332507,1389771011386.0,1.00311706931411606549e+02);                                                                                              
INSERT INTO times VALUES(332508,1389771011486.0,1.00402772936965916988e+02);                                                                                              
INSERT INTO times VALUES(332509,1389771011587.0,9.997646394393146352e+01);                                                                                                
INSERT INTO times VALUES(332510,1389771011686.0,9.99214240504645658837e+01);                                                                                              
INSERT INTO times VALUES(332511,1389771011786.0,9.98203507915526415655e+01);                                                                                              
INSERT INTO times VALUES(332512,1389771011887.0,1.0023865398190100962e+02);                                                                                               
INSERT INTO times VALUES(332513,1389771011986.0,1.00214636573842739151e+02);                                                                                              
INSERT INTO times VALUES(332514,1389771012086.0,1.00408777288980488151e+02);                                                                                              
INSERT INTO times VALUES(332515,1389771012186.0,1.00013490781354633444e+02);                                                                                              
INSERT INTO times VALUES(332516,1389771012286.0,1.00479828787819570835e+02);                                                                                              
INSERT INTO times VALUES(332517,1389771012386.0,9.9635216604436735114e+01);                                                                                               
INSERT INTO times VALUES(332518,1389771012486.0,1.00408777288980488151e+02);                                                                                              
                                                                                                                                                                            
insert into partytimes values(1,1,332478,332486);
insert into partytimes values(2,1,332493,332507);
insert into partytimes values(3,1,332512,332518);
...
Рейтинг: 0 / 0
Запрос для нескольких диапазонов
    #38528153
Stupid_BOT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Michael222,
Код: sql
1.
2.
3.
4.
5.
6.
select 
  t.*
from 
  party p 
  join partytimes pt on pt.party_id = p.id
  join times t on t.id >= pt.begin_id and t.id <= pt.end_id;
...
Рейтинг: 0 / 0
Запрос для нескольких диапазонов
    #38528154
Michael222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stupid_BOT,

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


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