start, stop zapisane w tym samym polu
Piotr Borowski - 12-01-2007 00:29
start, stop zapisane w tym samym polu
Pozdrawiam Mam tabele
id, time, filename, mode 1, 2006-01-13 12:00:00, kotek.bmp, 0 2, 2006-01-13 12:00:02, kotek.bmp, 1 3, 2006-01-13 12:00:04, piesek.bmp, 0 4, 2006-01-13 12:00:06, piesek.bmp, 1
pole mode oznacza 0 - zaczeto wyswietlac 1 - skonczono
czy da sie w jednym zapytaniu przerobic ta tabele w taka jak ponizej:
filename, start, stop kotek.bmp, 2006-01-13 12:00:00, 2006-01-13 12:00:02 piesek.bmp, 2006-01-13 12:00:04, 2006-01-13 12:00:06
Wydaje mi sie, ze nie, bo czasami moze sie zdarzyc, ze beda dwa starty, albo dwa stopy i trzeba to zignorowac. Jakies sugestie? -- Piotr Borowski sorry za literki, ale pisze z Leicester
Grzegorz Danowski - 12-01-2007 00:29
"Piotr Borowski" <PeterBilberry@gazeta.pl> wrote in message news:eo5k1f$spo$1@inews.gazeta.pl... > Pozdrawiam > Mam tabele > > id, time, filename, mode > 1, 2006-01-13 12:00:00, kotek.bmp, 0 > 2, 2006-01-13 12:00:02, kotek.bmp, 1 .... > czy da sie w jednym zapytaniu przerobic ta tabele w taka jak ponizej: > > filename, start, stop > kotek.bmp, 2006-01-13 12:00:00, 2006-01-13 12:00:02 > piesek.bmp, 2006-01-13 12:00:04, 2006-01-13 12:00:06 > > Wydaje mi sie, ze nie, bo czasami moze sie zdarzyc, ze beda dwa starty, > albo dwa stopy i trzeba to zignorowac. > Jakies sugestie?
A Case When próbowałeś? Coś w stylu:
Select FileName, Min(Case When mode = 0 Then time End) As start, Max(Case When mode = 1 Then time End) As stop From TwojaTabelka Group By FileName
W tej chwili wybierana jest najmniejsza data rozpoczęcia, jeśli chcesz najświeższą, to wpisz Max zamiast Min. -- Pozdrawiam Grzegorz
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 12-01-2007 00:29
Piotr Borowski wrote: > Pozdrawiam > Mam tabele > > id, time, filename, mode > 1, 2006-01-13 12:00:00, kotek.bmp, 0 > 2, 2006-01-13 12:00:02, kotek.bmp, 1 > 3, 2006-01-13 12:00:04, piesek.bmp, 0 > 4, 2006-01-13 12:00:06, piesek.bmp, 1 > > pole mode oznacza > 0 - zaczeto wyswietlac > 1 - skonczono > > czy da sie w jednym zapytaniu przerobic ta tabele w taka jak ponizej: > > filename, start, stop > kotek.bmp, 2006-01-13 12:00:00, 2006-01-13 12:00:02 > piesek.bmp, 2006-01-13 12:00:04, 2006-01-13 12:00:06 > > Wydaje mi sie, ze nie, bo czasami moze sie zdarzyc, ze beda dwa starty, albo > dwa stopy i trzeba to zignorowac. > Jakies sugestie?
Najprościej, to dodać pole id wyświetlenia. Inaczej to można zrobić tylko bardzo niewydajne zapytanie i to przy założeniu, że nie mogą być równocześnie wyświetlane dwa obrazki (a pewnie mogą).
-- P.M.
=?ISO-8859-2?Q?Micha=B3?= Kuratczyk - 12-01-2007 00:29
Piotr Borowski wrote: > id, time, filename, mode > 1, 2006-01-13 12:00:00, kotek.bmp, 0 > 2, 2006-01-13 12:00:02, kotek.bmp, 1 > 3, 2006-01-13 12:00:04, piesek.bmp, 0 > 4, 2006-01-13 12:00:06, piesek.bmp, 1 > > pole mode oznacza > 0 - zaczeto wyswietlac > 1 - skonczono > > czy da sie w jednym zapytaniu przerobic ta tabele w taka jak ponizej: > > filename, start, stop > kotek.bmp, 2006-01-13 12:00:00, 2006-01-13 12:00:02 > piesek.bmp, 2006-01-13 12:00:04, 2006-01-13 12:00:06 Jeśli to jest Oracle, to powinno się dać używając funkcji analitycznych, coś w stylu lead/lag over (partition by filename order by time, mode).
-- Michał Kuratczyk
Piotr Borowski - 12-01-2007 00:29
>> Wydaje mi sie, ze nie, bo czasami moze sie zdarzyc, ze beda dwa starty, >> albo dwa stopy i trzeba to zignorowac. >> Jakies sugestie? > A Case When próbowałeś? Coś w stylu: > Select > FileName, > Min(Case When mode = 0 Then time End) As start, > Max(Case When mode = 1 Then time End) As stop > From > TwojaTabelka > Group By > FileName > W tej chwili wybierana jest najmniejsza data rozpoczęcia, jeśli chcesz > najświeższą, to wpisz Max zamiast Min.
dzieki za sugestie, ale tego moze byc pelno, moze sie zdarzyc, ze pare plikow bedzie otwartych na raz :-(
-- Piotr Borowski sorry za literki, ale pisze z Leicester
Piotr Borowski - 12-01-2007 00:29
>> filename, start, stop >> kotek.bmp, 2006-01-13 12:00:00, 2006-01-13 12:00:02 >> piesek.bmp, 2006-01-13 12:00:04, 2006-01-13 12:00:06 > Jeśli to jest Oracle, to powinno się dać używając funkcji analitycznych, > coś > w stylu lead/lag over (partition by filename order by time, mode).
dzieki, ale to nie oracle sorry, powinieniem podac na poczatku to MySQL
-- Piotr Borowski sorry za literki, ale pisze z Leicester
Grzegorz Danowski - 12-01-2007 00:29
"Piotr Borowski" <PeterBilberry@gazeta.pl> wrote in message news:eo5nju$gvr$1@inews.gazeta.pl... >>> Wydaje mi sie, ze nie, bo czasami moze sie zdarzyc, ze beda dwa starty, >>> albo dwa stopy i trzeba to zignorowac. >>> Jakies sugestie? >> A Case When próbowałeś? Coś w stylu: .... >> W tej chwili wybierana jest najmniejsza data rozpoczęcia, jeśli chcesz >> najświeższą, to wpisz Max zamiast Min. > > dzieki za sugestie, ale tego moze byc pelno, moze sie zdarzyc, ze pare > plikow bedzie otwartych na raz :-(
No i wynik powyższego zapytania będzie nieprawidłowy? W takim razie wyjaśnij co miałeś na myśli pisząc: "czasami moze sie zdarzyc, ze beda dwa starty, albo dwa stopy i trzeba to zignorowac" -- Pozdrawiam Grzegorz
Piotr Borowski - 13-01-2007 00:01
>>>> Wydaje mi sie, ze nie, bo czasami moze sie zdarzyc, ze beda dwa starty, >>>> albo dwa stopy i trzeba to zignorowac. >>>> Jakies sugestie? >>> A Case When próbowałeś? Coś w stylu: >>> W tej chwili wybierana jest najmniejsza data rozpoczęcia, jeśli chcesz >>> najświeższą, to wpisz Max zamiast Min. >> dzieki za sugestie, ale tego moze byc pelno, moze sie zdarzyc, ze pare >> plikow bedzie otwartych na raz :-( > No i wynik powyższego zapytania będzie nieprawidłowy? W takim razie > wyjaśnij co miałeś na myśli pisząc: > "czasami moze sie zdarzyc, ze beda dwa starty, albo > dwa stopy i trzeba to zignorowac"
sorry, chyba nie bylem zbyt dokladny jest pelno komputerow, ktore odgrywaja (pokazuja) pliki multimedialne, gdy zaczynaja pokazywac zapisuja do bazy pierwszy rekord, gdy koncza drugi, moim zadaniem jest napisanie programu, ktory wyliczy calkowity czas pokazywania czegos np. w danym dniu w tym celu musze od kazdego konca odjac jego poczatek, gdyby sie zdarzyl poczatek bez konca, trzeba go zignorowac itd.
-- Piotr Borowski sorry za literki, ale pisze z Leicester
Maciek Dobrzanski - 13-01-2007 00:01
"Piotr Borowski" <PeterBilberry@gazeta.pl> wrote in message news:eo7lca$nvt$1@inews.gazeta.pl...
> jest pelno komputerow, ktore odgrywaja (pokazuja) pliki multimedialne, gdy > zaczynaja pokazywac zapisuja do bazy pierwszy rekord, gdy koncza drugi, > moim zadaniem jest napisanie programu, ktory wyliczy calkowity czas > pokazywania czegos np. w danym dniu
A widzisz, to zmienia postać rzeczy. Choć poniższe rozwiązanie oparte jest o kruche założenie, ża każdy początek będzie miał swój koniec, bo inaczej... będzie źle ;)
SELECT filename, SUM((CASE WHEN mode = 0 THEN -1 ELSE 1 END)*UNIX_TIMESTAMP(time)) AS p_time FROM t1 GROUP BY filename;
Jak to działa, jak przerobić zapytanie dla pojedynczego pliku, lub określonego czasu - sam pomyśl. :)
Maciek
Piotr Borowski - 13-01-2007 00:01
"Maciek Dobrzanski" <mushu@WYTNIJ-TOpoczta.fm> wrote in message news:eo7o53$f9n$1@news.interia.pl... > "Piotr Borowski" <PeterBilberry@gazeta.pl> wrote in message > news:eo7lca$nvt$1@inews.gazeta.pl... > >> jest pelno komputerow, ktore odgrywaja (pokazuja) pliki multimedialne, >> gdy zaczynaja pokazywac zapisuja do bazy pierwszy rekord, gdy koncza >> drugi, moim zadaniem jest napisanie programu, ktory wyliczy calkowity >> czas pokazywania czegos np. w danym dniu > > A widzisz, to zmienia postać rzeczy. Choć poniższe rozwiązanie oparte jest > o kruche założenie, ża każdy początek będzie miał swój koniec, bo > inaczej... będzie źle ;) > > SELECT filename, SUM((CASE WHEN mode = 0 THEN -1 ELSE 1 > END)*UNIX_TIMESTAMP(time)) AS p_time FROM t1 GROUP BY filename; > > Jak to działa, jak przerobić zapytanie dla pojedynczego pliku, lub > określonego czasu - sam pomyśl. :) > > Maciek
dzieki
-- Piotr Borowski sorry za literki, ale pisze z Leicester
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MySQL] Zapytanie z =?ISO-8859-2?Q?dw=F3ch_tabel_na_raz_?==?ISO-8859-2?Q?i_grupowanie_po_wsp=F3lnym_polu=2E_Jak_=3F?=
Jedno zapytanie różne wyniki w polu data [mysql i mysql+php]
Adobe Illustrator - jak w wersji 11 zapisać plik w formacie wersji 10 albo 8?
=?iso-8859-2?Q?Jak_zapisa=E6_tak=B1_formu=B3=EA_w_excelu=3F?=
Jak nalezy w Photoshopie zapisac z bazowego psd na eps tak by pozniej otworzyc go w krzywych w Corelu???
ORACLE - czy da sie poprawic konkretny znak w polu typu varchar?
[mySQL] pomoc w zapytaniu zmieniajacym slow o w polu text
[MS SQL server 2005] - zapisanie wyniku zapytania na dysk
MYSQL i PHP - polskie litery w polu SELECT
[VFP9] Zatrzymanie kursora w polu tekst
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 |
|