Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Запрос для нескольких диапазонов / 4 сообщений из 4, страница 1 из 1
16.01.2014, 12:52
    #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
16.01.2014, 13:09
    #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
16.01.2014, 13:27
    #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
16.01.2014, 13:29
    #38528154
Michael222
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запрос для нескольких диапазонов
Stupid_BOT,

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


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