Czy ten problem ma rozwiązanie w SQLu?
lokum09 - 16-02-2006 10:05
Czy ten problem ma rozwiązanie w SQLu?
Witam.
Mam tabele wydarzenia z polami data_od i data_do wkórych zapisywany jest czas trwania wydarzeń. Chiałbym przy pomocy jednego zapytania wyświelić wszystkie wydarzenia w bieżacym miesiącu, z tym tylko że wydarzenia miałby się wyświetlać nie tylko w dniu rozpoczęcia, ale przez cały okres trwania. Jedyny pomysł który mi przyszedł do głowy to taki żeby stworzyć osobną tabele dat od pierwszego do ostatniego wydarzenia i łączyć (joinem) poszczególne rekordy tej tabeli z tabelą wydarzeń. Może któś ma bardzej elegencki i prostszy sposób.
Przykład (jeżeli niezbyt czytelnie przedstawiłem problem): Mam powiedzmy wydarzenie z polem data_od = '2006-01-01' a pole data_do = '2006-01-03'. Chce wyświetlić wydarzenia na miesiąc styczeń 2006, czyli kolejno 1, 2, 3 styczeń itd, z tym tylko że to wydarzenie miałoby się wyświetlać przy 1, 2 i 3 stycznia. Przypominam chce to zrobić jednym zapytaniu, a nie przez wywołaywanie selecta dla każdego dnia miesiąca, ponieważ działa to zbyt wolno.
Pozdrawiam Grek
k_grupa - 16-02-2006 10:05
Witam,
Może tak (Interbase):
select * from tabela where (cast('now' as date) >= data_od) and (cast('now' as date) <= data_do)
pozdr Darek
Użytkownik "lokum09" <lokum09@wp.pl> napisał w wiadomości news:dt1g0s$cpl$1@news.wp.pl... > Witam. > > Mam tabele wydarzenia z polami data_od i data_do wkórych zapisywany jest > czas trwania wydarzeń. > Chiałbym przy pomocy jednego zapytania wyświelić wszystkie wydarzenia w > bieżacym miesiącu, z tym tylko że wydarzenia miałby się wyświetlać nie > tylko > w dniu rozpoczęcia, ale przez cały okres trwania. > Jedyny pomysł który mi przyszedł do głowy to taki żeby stworzyć osobną > tabele dat od pierwszego do ostatniego wydarzenia i łączyć (joinem) > poszczególne rekordy tej tabeli z tabelą wydarzeń. > Może któś ma bardzej elegencki i prostszy sposób. > > Przykład (jeżeli niezbyt czytelnie przedstawiłem problem): > Mam powiedzmy wydarzenie z polem data_od = '2006-01-01' a pole data_do = > '2006-01-03'. > Chce wyświetlić wydarzenia na miesiąc styczeń 2006, czyli kolejno 1, 2, 3 > styczeń itd, z tym tylko że to wydarzenie miałoby się wyświetlać przy 1, 2 > i > 3 stycznia. Przypominam chce to zrobić jednym zapytaniu, a nie przez > wywołaywanie selecta dla każdego dnia miesiąca, ponieważ działa to zbyt > wolno. > > Pozdrawiam > Grek > >
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 20-02-2006 14:07
lokum09 wrote: > Witam. > > Mam tabele wydarzenia z polami data_od i data_do wkórych zapisywany jest > czas trwania wydarzeń. > Chiałbym przy pomocy jednego zapytania wyświelić wszystkie wydarzenia w > bieżacym miesiącu, z tym tylko że wydarzenia miałby się wyświetlać nie tylko > w dniu rozpoczęcia, ale przez cały okres trwania. > Jedyny pomysł który mi przyszedł do głowy to taki żeby stworzyć osobną > tabele dat od pierwszego do ostatniego wydarzenia i łączyć (joinem) > poszczególne rekordy tej tabeli z tabelą wydarzeń. > Może któś ma bardzej elegencki i prostszy sposób.
To jest jedyne dobre podejści. Można tylko zastosować dodatkowy wariant, który zamiast tabeli użyje funkcji zwracającej zbiór, ale to nie wszystkie bazy potrafią.
-- P.M.
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?=
mysql i mysql-front, problem
String line; if (line=="cos"){...}....problem
Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?=
[postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?=
[oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?=
Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ]
[PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ?
[MySQL] Problem z zapisem danych w bazie danych
Problem z mysql - can't connect to MySQL/nietypowo...
zanotowane.pldoc.pisz.plpdf.pisz.pllubiatowo.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 |
|