ďťż
 
(PL/SQL) Oracle10i - Select porownujacy daty ďťż
 
(PL/SQL) Oracle10i - Select porownujacy daty
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

(PL/SQL) Oracle10i - Select porownujacy daty



Mariusz S - 12-11-2006 00:37
(PL/SQL) Oracle10i - Select porownujacy daty
  Witajcie
Mama taki problem ( w sumie pewnie prosty) ale cos nie moge wpasc na
rozwiazanie.

Jest sobie tabela 'umowy' o strukturze
id,idpracownika,nazwaumowy,data_od,data_do

Dane wprowadzone sa w taki sposob ze dla danego idpracownika daty umow nie
pokrywaja sie ani w zaden sposob nie zazebiaja w sensie zadna umowa dla daego
pracownika nie moze konczyc sie ani zaczynac w tym samym dniu co inna umowa.
Przyklad:
1,100,'UMOWA PIERWSZA KOWALSKI',01-01-2006,13-01-2006
2,101,'UMOWA PIERWSZA WISNIEWSKI'02-02-2006,03-02-2006
3,100,'UMOWA DRUGA KOWALSKI',15-01-2006,31-01-2006
4,101,'UMOWA DRUGA WISNIEWSKI',04-02-2006,25-02-2006
5,101,'UMOWA TRZECIA WISNIEWSKI',04-03-2006,05-03-2006

Zalezy mi na skonstruowaniu takiego selecta ktory z w.w tabeli wyciagnie tylko
takie umowy ( pomijajac pierwsza dla kazdego pracownika) ktore maja
przynajmniej dzien przerwy miedzy umowami czyli roznica miedzy data_od
kolejnej umowu a data_do umowy wczesniejszej musi byc wieksza niz 0

Efekt tego zapytania :
powinien wyswietlic rekordy o id 3 i 5.

Ewentualnie interesowalby mnie uproszczony wariant tego zapytania gdzie mamy
juz zawezenie do tego samego idpracownika czyli nasza sortowana tabela
wyglada np tak :
2,101,'UMOWA PIERWSZA WISNIEWSKI'02-02-2006,03-02-2006
4,101,'UMOWA DRUGA WISNIEWSKI',04-02-2006,25-02-2006
5,101,'UMOWA TRZECIA WISNIEWSKI',04-03-2006,05-03-2006

i zapytanie powinno wyswietlic rekord id 5

Prosilbym bardzo o pomoc i z gory dziekuje.
Pozdrowienia
MS

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/





Lucyna Witkowska - 12-11-2006 00:37

  Mariusz S <smoline@nospam.gazeta.pl> napisał:
> Zalezy mi na skonstruowaniu takiego selecta ktory z w.w tabeli wyciagnie tylko
> takie umowy ( pomijajac pierwsza dla kazdego pracownika) ktore maja
> przynajmniej dzien przerwy miedzy umowami czyli roznica miedzy data_od
> kolejnej umowu a data_do umowy wczesniejszej musi byc wieksza niz 0

> Efekt tego zapytania :
> powinien wyswietlic rekordy o id 3 i 5.

Banał ;-)

select * from (
select id, idpracownika, data_od, data_do, data_od-lag(data_do) over
(partition by idpracownika
order by data_od) odstep
from umowy )
where odstep>1;

Pozdrowienia,
LW




Mariusz S - 12-11-2006 00:37

  Serdeczne dzieki.
Pozdr,MS

--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    Oracle 19g +Insert +Insert +Insert... [oracle] zapytanie dynamiczne z =?ISO-8859-2?Q?=22dynamiczn=B1_?==?ISO-8859-2?Q?nazw=B1_tabeli=22?= [Oracle] jak =?ISO-8859-2?Q?ograniczy=E6_pami=EA=E6_dla_se?==?ISO-8859-2?Q?rwera=3F?= =?ISO-8859-2?Q?=5BOT=5D_Zdany_egzamin_Oracle_1Z0-007_a?==?ISO-8859-2?Q?_brak_informacji_na_stronie_Prometric_-_czy?==?ISO-8859-2?Q?_co=B6_nie_tak=3F?= jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= [oracle] czy da =?ISO-8859-2?Q?si=EA_z_poziomu_procedury_?==?ISO-8859-2?Q?zrobi=E6_kopi=EA_zapasow=B1=3F?= [oracle 10g] czy =?ISO-8859-2?Q?mo=BFna_wy=B3=B1czy=E6_wszys?==?ISO-8859-2?Q?tkie_wi=EAzy_w_schemacie=3F?= MSSQL Express czy Oracle Express =?iso-8859-2?q?[oracle]_Jak_sprawdzi=E6_wielko=B6=E6_tabeli_=3F=3F?= =?ISO-8859-2?Q?Poszukjue_ksi=B1=BFki_"Oracle_?= =?ISO-8859-2?Q?optymalizacja_wydajno=B6ci"..?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • anette.xlx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com