Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.software.database > #2967
| Newsgroups | it.comp.software.database |
|---|---|
| Date | 2015-10-20 08:30 -0700 |
| References | <a80ecfaf-2427-4345-a0ef-0cf66728d597@googlegroups.com> <30df0782-a15b-4cc2-bad0-ea04bac9e5ec@googlegroups.com> |
| Message-ID | <f9889a27-6ccf-45fa-a99f-3633f5d69124@googlegroups.com> (permalink) |
| Subject | Re: [OT] Esperti di query SQL (Oracle) |
| From | Claudio Cioletti <ciole7@gmail.com> |
Il giorno giovedì 15 ottobre 2015 16:42:24 UTC+2, Giacomo Degli Esposti ha scritto:
> On Wednesday, October 14, 2015 at 10:54:37 AM UTC+2, Claudio Cioletti wrote:
> > Avendo una query che tira fuori i seguenti record:
> > NR - DATA INIZIO - DATA FINE
> [...]
> > 20 - 22/01/2015 11:10:07 - 24/02/2015 12:41:57
> > io dovrei "tenere" solo quelli che non sono compresi
> > nel range minimo e massimo di date e, se la data_fine
> > è maggiore della precedente massima data fine, dovrei
> > "spostare" il range.
> > Per farmi capire, i record da 2 a 7 li dovrei scartare
> > e il record 8 dovrebbe spostarmi il range da
> > 02/01/2015 10:32:52 - 13/01/2015 16:52:12 derivato
> > dal record 1 al range
> > 02/01/2015 10:32:52 - 14/01/2015 17:15:03.
> > Così anche i record 9 e 10 dovrebbero spostare la
> > data fine.
> > Il record 11 invece inizia un nuovo range...
> > Alla fine dovrei avere un query che mi da:
> > 01 - 02/01/2015 10:32:52 - 15/01/2015 10:06:11
> > 02 - 15/01/2015 15:40:35 - 21/01/2015 13:06:31
> > 03 - 22/01/2015 09:39:45 - 04/02/2015 16:11:21
>
> Non e' tanto chiaro cosa devi ottenere... :-\
> Il range minimo e massimo sono dei dati che ti arrivano
> dall'esterno?
> Stai cercando di ottenere una query sql o di realizzare
> una stored procedure ?
>
> ciao
> Giacomo
I dati sono su una tabella fatta come ti descrivo sotto.
La richiesta era di fare una singola query
che tirasse fuori solo i "range" di date
APERTURA - CHIUSURA non compresi in altri "range"
ordinando per SERVIZIO e APERTURA...
1) SERVICE_01 19/01/2015 12:12:27 05/03/2015 15:57:22
2) SERVICE_01 21/01/2015 15:43:40 29/01/2015 13:07:35
3) SERVICE_01 12/02/2015 11:58:58 13/02/2015 17:05:20
4) SERVICE_01 24/03/2015 14:40:12 24/03/2015 18:38:36
Per esempio i record 2 e 3 sono "compresi" nel 1
mentre il record 4 no; quindi il risultato dovrebbe
essere:
1) SERVICE_01 19/01/2015 12:12:27 05/03/2015 15:57:22
2) SERVICE_01 24/03/2015 14:40:12 24/03/2015 18:38:36
Alla fine ce l'ho fatta, ma se volete provarci voi ecco i dati:
CREATE TABLE TEST_RANGE_DATE
(SERVICE VARCHAR2(10),
APERTURA DATE ,
CHIUSURA DATE );
--
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('03/04/2015 15:31:48','DD/MM/YYYY HH24:MI:SS'),to_date('03/04/2015 16:08:02','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('03/07/2015 13:06:14','DD/MM/YYYY HH24:MI:SS'),to_date('15/07/2015 14:07:07','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('03/07/2015 15:55:39','DD/MM/YYYY HH24:MI:SS'),to_date('14/07/2015 11:10:54','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('03/07/2015 17:32:10','DD/MM/YYYY HH24:MI:SS'),to_date('07/07/2015 18:31:14','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('04/05/2015 11:32:47','DD/MM/YYYY HH24:MI:SS'),to_date('06/05/2015 14:54:12','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('08/10/2015 15:19:31','DD/MM/YYYY HH24:MI:SS'),to_date('12/10/2015 09:16:45','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('09/07/2015 12:45:36','DD/MM/YYYY HH24:MI:SS'),to_date('10/07/2015 11:35:18','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('10/09/2015 15:02:22','DD/MM/YYYY HH24:MI:SS'),to_date('17/09/2015 16:21:13','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('12/02/2015 11:58:58','DD/MM/YYYY HH24:MI:SS'),to_date('13/02/2015 17:05:20','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('13/04/2015 13:03:47','DD/MM/YYYY HH24:MI:SS'),to_date('18/06/2015 17:02:45','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('13/08/2015 15:07:19','DD/MM/YYYY HH24:MI:SS'),to_date('13/08/2015 16:48:13','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('14/07/2015 18:45:12','DD/MM/YYYY HH24:MI:SS'),to_date('15/07/2015 17:26:36','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('14/07/2015 19:00:19','DD/MM/YYYY HH24:MI:SS'),to_date('17/07/2015 14:48:20','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('16/07/2015 11:58:23','DD/MM/YYYY HH24:MI:SS'),to_date('28/08/2015 14:04:23','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('19/01/2015 12:12:27','DD/MM/YYYY HH24:MI:SS'),to_date('05/03/2015 15:57:22','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('21/01/2015 15:43:40','DD/MM/YYYY HH24:MI:SS'),to_date('29/01/2015 13:07:35','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('24/03/2015 14:40:12','DD/MM/YYYY HH24:MI:SS'),to_date('24/03/2015 18:38:36','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('25/06/2015 11:21:57','DD/MM/YYYY HH24:MI:SS'),to_date('26/06/2015 12:29:13','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('26/06/2015 10:53:59','DD/MM/YYYY HH24:MI:SS'),to_date('26/06/2015 16:25:18','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('27/04/2015 12:46:19','DD/MM/YYYY HH24:MI:SS'),to_date('04/05/2015 13:07:15','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('28/05/2015 12:09:12','DD/MM/YYYY HH24:MI:SS'),to_date('29/05/2015 12:08:42','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_01',to_date('29/06/2015 11:47:18','DD/MM/YYYY HH24:MI:SS'),to_date('29/06/2015 16:20:18','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('10/06/2015 17:32:37','DD/MM/YYYY HH24:MI:SS'),to_date('19/06/2015 19:24:39','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('11/05/2015 09:23:21','DD/MM/YYYY HH24:MI:SS'),to_date('11/05/2015 10:49:48','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('12/10/2015 08:43:43','DD/MM/YYYY HH24:MI:SS'),to_date('12/10/2015 14:19:54','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('14/08/2015 13:31:12','DD/MM/YYYY HH24:MI:SS'),to_date('21/08/2015 11:21:35','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('15/06/2015 11:51:29','DD/MM/YYYY HH24:MI:SS'),to_date('10/07/2015 12:45:26','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('17/08/2015 14:57:16','DD/MM/YYYY HH24:MI:SS'),to_date('28/08/2015 13:13:49','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('19/08/2015 20:05:41','DD/MM/YYYY HH24:MI:SS'),to_date('24/08/2015 17:52:10','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('21/04/2015 10:06:37','DD/MM/YYYY HH24:MI:SS'),to_date('30/04/2015 10:42:48','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('21/04/2015 15:12:15','DD/MM/YYYY HH24:MI:SS'),to_date('22/04/2015 18:32:14','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('25/03/2015 09:29:18','DD/MM/YYYY HH24:MI:SS'),to_date('08/04/2015 15:14:56','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('25/03/2015 17:12:19','DD/MM/YYYY HH24:MI:SS'),to_date('07/04/2015 15:16:40','DD/MM/YYYY HH24:MI:SS'));
insert into TEST_RANGE_DATE values('SERVICE_02',to_date('26/06/2015 20:16:42','DD/MM/YYYY HH24:MI:SS'),to_date('15/07/2015 16:51:19','DD/MM/YYYY HH24:MI:SS'));
Back to it.comp.software.database | Previous | Next — Previous in thread | Next in thread | Find similar
[OT] Esperti di query SQL (Oracle) Claudio Cioletti <ciole7@gmail.com> - 2015-10-14 01:54 -0700
Re: [OT] Esperti di query SQL (Oracle) Claudio Cioletti <ciole7@gmail.com> - 2015-10-15 03:07 -0700
Re: [OT] Esperti di query SQL (Oracle) Giacomo Degli Esposti <giacomo.degliesposti@gmail.com> - 2015-10-15 07:42 -0700
Re: [OT] Esperti di query SQL (Oracle) Claudio Cioletti <ciole7@gmail.com> - 2015-10-20 08:30 -0700
Re: [OT] Esperti di query SQL (Oracle) Giacomo Degli Esposti <giacomo.degliesposti@gmail.com> - 2015-10-20 09:13 -0700
Re: [OT] Esperti di query SQL (Oracle) Claudio Cioletti <ciole7@gmail.com> - 2015-10-21 04:24 -0700
Re: [OT] Esperti di query SQL (Oracle) Giacomo Degli Esposti <giacomo.degliesposti@gmail.com> - 2015-10-21 06:01 -0700
Re: [OT] Esperti di query SQL (Oracle) Claudio Cioletti <ciole7@gmail.com> - 2015-10-21 06:42 -0700
Re: [OT] Esperti di query SQL (Oracle) Giacomo Degli Esposti <giacomo.degliesposti@gmail.com> - 2015-10-21 06:56 -0700
Re: [OT] Esperti di query SQL (Oracle) Claudio Cioletti <ciole7@gmail.com> - 2015-10-21 07:48 -0700
csiph-web