powered by simpleCommunicator - 2.0.41     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложный запрос сравнения
9 сообщений из 34, страница 2 из 2
Сложный запрос сравнения
    #38209384
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s_ustinov,


s_ustinovвесь набор данных появляется одномоментноКак знакомый с предметной областью, могу сказать ты не прав.
В данном случае П-Л прав.
...
Рейтинг: 0 / 0
Сложный запрос сравнения
    #38209447
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
s_ustinov
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Select distinct
...
union

Select distinct
....
union 

Select  distinct
...



групировки ещё не хватает :)
то бб были "3-ижды уникальные" записи :))
...
Рейтинг: 0 / 0
Сложный запрос сравнения
    #38209478
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhails,

Посмотри "Запрос3". Я там сильно ни чего не оптимизировал...
...
Рейтинг: 0 / 0
Сложный запрос сравнения
    #38209511
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каб не джет, я б уже решение выложил...
...
Рейтинг: 0 / 0
Сложный запрос сравнения
    #38209718
Mikhails
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Смотрю, отвечу как разберу
...
Рейтинг: 0 / 0
Сложный запрос сравнения
    #38209729
Mikhails
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
П-Л, Ну это моя боль... перевести геологов на Ms Sql с этого неудобного, не стабильного, и вообще устаревшего Access
Кстати если решение на T-Sql не сложно, я бы посмотрел. В принципе возможно решением будет некоторый буфер из MS SQL Express, куда я солью данные требующие таких разветвлённых проверок и попробую решать задачи там.
К сожалению я не являюсь спецом в SQL, учу на прямых задачах при наличии времени. Пока T-Sql явно лидирует.
...
Рейтинг: 0 / 0
Сложный запрос сравнения
    #38209740
Mikhails
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,
Получается у Вас в запросах 1 и 2 интервалы глубин одинаковые, а если в запросе 2 у нас бы было 0-30 - Примеси,30-50 - Чистая
(у нас в задаче такая ситуация).
Тогда, запрос 3, как я понимаю не сработает?
...
Рейтинг: 0 / 0
Сложный запрос сравнения
    #38209754
Mikhails
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,Прошу предыдущий пост считать недействительным.. вроде разобрался. "Глаз замылился" уже сегодня
...
Рейтинг: 0 / 0
Сложный запрос сравнения
    #38209808
П-Л
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
65.
66.
67.
68.
69.
70.
71.
declare @t1 table
( 
   id1 int PRIMARY KEY,
   iFrom1 int,
   iTo1 int
)

declare @t2 table 
( 
   id2 int PRIMARY KEY,
   iFrom2 int,
   iTo2 int
)

insert into @t1 (id1, iFrom1, iTo1) values (1, 0, 10)
insert into @t1 (id1, iFrom1, iTo1) values (2, 10, 20)
insert into @t1 (id1, iFrom1, iTo1) values (3, 20, 30)

insert into @t2 (id2, iFrom2, iTo2) values (1, 0, 5)
insert into @t2 (id2, iFrom2, iTo2) values (2, 5, 15)
insert into @t2 (id2, iFrom2, iTo2) values (3, 15, 35)

select * from @t1
select * from @t2

declare @dbl table 
(
   i1 int,
   i2 int
)

insert into @dbl (i1, i2)
select dbl.i1, i2 = min(dbl.i2) from
(
   select i1.i1, i2.i2 from 
   (
      select i1 from 
      (
         select i1 = iFrom1 from @t1
         union all select iTo1 from @t1
         union all select iFrom2 from @t2
         union all select iTo2 from @t2
      ) i1
      group by i1
   ) i1
   left outer join (
      select i2 from 
      (
         select i2 from 
         (
            select i2 = iFrom1 from @t1
            union all select iTo1 from @t1
            union all select iFrom2 from @t2
            union all select iTo2 from @t2
         ) i2
         group by i2
      ) i2      
   ) i2
   on i1.i1 < i2.i2
) dbl
where i2 is not null
group by dbl.i1
having dbl.i1 is not null

select * from @dbl

select dbl.i1, dbl.i2, t1.iFrom1, t1.iTo1, t2.iFrom2, t2.iTo2
from @dbl dbl
left outer join @t1 t1 on (dbl.i1 + dbl.i2) / 2 between t1.iFrom1 and t1.iTo1 
left outer join @t2 t2 on (dbl.i1 + dbl.i2) / 2 between t2.iFrom2 and t2.iTo2
GO


Код: plaintext
1.
2.
3.
4.
5.
6.
i1	i2	iFrom1	iTo1	iFrom2	iTo2
0	5	0	10	0	5
5	10	0	10	5	15
10	15	10	20	5	15
15	20	10	20	15	35
20	30	20	30	15	35
30	35	NULL	NULL	15	35
...
Рейтинг: 0 / 0
9 сообщений из 34, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Сложный запрос сравнения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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