Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Помогите с запросом  [new]
Андрей Ч.
Member

Откуда: Челябинск
Сообщений: 173
Есть запрос
select a.point "n_osh",(select point_name from point_id where point=a.point) "osh" ,
       a.param "n_fid",(select point_name from point_id where point=a.param) "fid", 
       min(interval) "mi",
       max(interval) "ma",
       a.dd_mm_yyyy "dat" 
from measuring_data a, point_id b
where param is not null 
and dd_mm_yyyy>='01.06.07' 
and dd_mm_yyyy<=last_day('01.06.07') 
and b.area=0000000004
and a.point=b.point
group by a.dd_mm_yyyy,a.point,a.param;

Результат
n_osh                osh                                                                                                  n_fid                fid                                                                                                          mi         ma dat
-------------------- ---------------------------------------------------------------------------------------------------- -------------------- ---------------------------------------------------------------------------------------------------- ---------- ---------- --------
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                   34         48 07.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 08.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 09.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 10.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 11.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 12.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 13.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 14.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 15.06.07

А должно быть

n_osh                osh                                                                                                  n_fid                fid                                                                                                          mi         ma dat
-------------------- ---------------------------------------------------------------------------------------------------- -------------------- ---------------------------------------------------------------------------------------------------- ---------- ---------- --------
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                   34         48 07.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 08.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 09.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 10.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 11.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 12.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 13.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         48 14.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                    1         28 15.06.07
743050002207901      15_Обх_Выкл                                                                                          000000000000000                                                                                                                   40         48 15.06.07


Тоесть в таблице measuring_data param c 1 по 28 interval not null и c 40 по 48 not null,
а с 29 по 39 null.
Подскажите как доработать запрос.
20 июн 07, 12:26    [4291356]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18337
Андрей Ч.
Подскажите как доработать запрос.

Вы бы того, этого, привели исходные данные, ожидаемый результат и описали задачу словами...
А так - разве что телепат какой возьмется Вам помочь..
20 июн 07, 13:08    [4292137]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Андрей Ч.
Member

Откуда: Челябинск
Сообщений: 173
Исходные данные
measuring_data

POINT                CHANEL               DD_MM_YY   INTERVAL      VALUE S EXTE PARAM
-------------------- -------------------- -------- ---------- ---------- - ---- --------------------
723070001107901      02                   01.06.07          1      16724 0 1114 000000000000000
723070001107901      02                   01.06.07         21      13701 0 1114 000000000000000
723070001107901      02                   01.06.07         24       6442 0 1114 000000000000000
723070001107901      03                   01.06.07          1       4264 0 1114 000000000000000
723070001107901      02                   01.06.07         14      13742 0 1114 000000000000000
723070001107901      03                   01.06.07          2       4013 0 1114 000000000000000
723070001107901      02                   01.06.07         10      14296 0 1114 000000000000000
723070001107901      03                   01.06.07          4       4105 0 1114 000000000000000
723070001107901      03                   01.06.07         23       5452 0 1114 000000000000000
723070001107901      03                   01.06.07          9       4145 0 1114 000000000000000

point_id

AREA                 POINT                POINT_NAME
-------------------- -------------------- ----------------------------------------------------------------------------------------------------
7200000200           721150003132001      XXX1
7200000200           721150003211001      XXX2
7200000200           721150003132002      XXX3
20 июн 07, 13:14    [4292261]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Андрей Ч.
Member

Откуда: Челябинск
Сообщений: 173
Есть таблица
dd_mm_yyyy     interval    param
01.06.07              1            x
01.06.07              2            x
01.06.07              3            x
01.06.07              4
01.06.07              5
01.06.07              6
01.06.07              7            x
01.06.07              8            x
01.06.07              9            x
01.06.07             10           x

нужно получить 

dd_mm_yyyy      min          max        param
01.06.07            1              3             x
01.06.07            7              10           x

21 июн 07, 06:24    [4296984]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
vyv3
Member

Откуда: Нск
Сообщений: 305
with tbl as (
select sysdate as dt, 1 as interval, 'x' as param from dual union all
select sysdate as dt, 2 as interval, 'x' as param from dual union all
select sysdate as dt, 3 as interval, 'x' as param from dual union all
select sysdate as dt, 4 as interval, null as param from dual union all
select sysdate as dt, 5 as interval, null as param from dual union all
select sysdate as dt, 6 as interval, null as param from dual union all
select sysdate as dt, 7 as interval, 'x' as param from dual union all
select sysdate as dt, 8 as interval, 'x' as param from dual union all
select sysdate as dt, 9 as interval, 'x' as param from dual union all
select sysdate as dt, 10 as interval, 'x' as param from dual 
) 
select dt, min(interval), max(interval),param
from (
select rownum, dt,interval,param ,interval -rownum as gr 
 from ( select * from tbl order by interval)
where param is not null)
group by dt,gr,param
21 июн 07, 07:29    [4297020]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
vyv3
Member

Откуда: Нск
Сообщений: 305
DT       MIN(INTERVAL) MAX(INTERVAL) P
-------- ------------- ------------- -
21.06.07             1             3 x
21.06.07             7            10 x
21 июн 07, 07:34    [4297025]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Андрей Ч.
Member

Откуда: Челябинск
Сообщений: 173
vyv3
with tbl as (
select sysdate as dt, 1 as interval, 'x' as param from dual union all
select sysdate as dt, 2 as interval, 'x' as param from dual union all
select sysdate as dt, 3 as interval, 'x' as param from dual union all
select sysdate as dt, 4 as interval, null as param from dual union all
select sysdate as dt, 5 as interval, null as param from dual union all
select sysdate as dt, 6 as interval, null as param from dual union all
select sysdate as dt, 7 as interval, 'x' as param from dual union all
select sysdate as dt, 8 as interval, 'x' as param from dual union all
select sysdate as dt, 9 as interval, 'x' as param from dual union all
select sysdate as dt, 10 as interval, 'x' as param from dual 
) 
select dt, min(interval), max(interval),param
from (
select rownum, dt,interval,param ,interval -rownum as gr 
 from ( select * from tbl order by interval)
where param is not null)
group by dt,gr,param


а если добавить в исходные данные
dd_mm_yyyy     interval    param  point  chanel
01.06.07              1            x        y        z
01.06.07              2            x        y        z
01.06.07              3            x        y        z
01.06.07              4                     y        z
01.06.07              5                     y        z
01.06.07              6                     y        z
01.06.07              7            x        y       z
01.06.07              8            x        y       z 
01.06.07              9            x        y       z
01.06.07             10           x        y       z
в этой таблице данные за один год, point могут быть разные за один interval, а у каждой point может быть до 8 различных chanel
21 июн 07, 08:35    [4297112]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Elic
Member

Откуда:
Сообщений: 29976
Андрей Ч.
STFF start_of_group
Андрей Ч.
в этой таблице данные за один год, point могут быть разные за один interval, а у каждой point может быть до 8 различных chanel
И что из этого ?! RTFM
21 июн 07, 08:38    [4297117]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить