Różnica wartości w SQL'u
MPolo - 17-03-2006 00:29
Różnica wartości w SQL'u
Jakie zapytanie SQL'owe należy stworzyć, aby obliczyć różnicę tej samej zmiennej. Chodzi doładnie o coś takiego: Var(czas aktualny) - Var(czas aktualny - 1h) a potem tę różnicę zapisać do bazy pod inną zmienną.
MPolo
Ala - 17-03-2006 00:29
Użytkownik "MPolo" <mpolo2003@poczta.onet.pl> napisał w wiadomości news:dv9kcb$o6i$1@inews.gazeta.pl... > Jakie zapytanie SQL'owe należy stworzyć, > aby obliczyć różnicę tej samej zmiennej. > Chodzi doładnie o coś takiego: > Var(czas aktualny) - Var(czas aktualny - 1h) > a potem tę różnicę zapisać do bazy pod inną zmienną.
przecież różnica w tym przypadku zawsze będzie wynosiła 1h ...
=?ISO-8859-2?Q?Witek_=A6wierzy?= - 17-03-2006 00:29
MPolo wrote: > Jakie zapytanie SQL'owe należy stworzyć, > aby obliczyć różnicę tej samej zmiennej. > Chodzi doładnie o coś takiego: > Var(czas aktualny) - Var(czas aktualny - 1h) > a potem tę różnicę zapisać do bazy pod inną zmienną. > > MPolo > > a np. tak (rozumiem, ze pod pojeciem zmiennej rozumiesz kolumne tabeli ? ):
select a.zmienna - b.zmienna from (select zmienna from tabela where czas=czas_aktualny) a, (select zmienna from tabela where czas=czas_aktualny-1_godzina) b
a zapisanie : insert into tabela2(inna_zmienna) select a.zmienna - b.zmienna from (select zmienna from tabela where czas=czas_aktualny) a, (select zmienna from tabela where czas=czas_aktualny-1_godzina) b
o ile pod pojeciem "zmienna" rozumiesz kolumne tabeli, a "zapisanie do bazy" to wstawienie nowego wiersza do innej tabeli.A jezeli pod tymi pojeciami rozumiesz cos innego, to juz nie wiem jak ;-) pozdrawiam Witek Swierzy wswier@sgh.waw.pl
MPolo - 17-03-2006 00:30
Użytkownik "Witek Świerzy" <wswier@sgh.waw.pl> napisał w wiadomości news:dva24v$o65$1@amigo.idg.com.pl... >>
Dobrze, postaram się to uszczegółowć:
Mam tabelę:
---------------------+------+----- DataCzas | Var0 | Var1 ---------------------+------+----- 2006-03-16 17:00:00 | 2567 | ???? 2006-03-16 17:01:00 | 2579 | ???? 2006-03-16 17:02:00 | 2594 | ???? 2006-03-16 17:03:00 | 2594 | ???? 2006-03-16 17:04:00 | 2600 | ???? 2006-03-16 17:05:00 | 2604 | ????
zmienna Var0 w tabeli jest wartością narastającą (licznik) teraz chcę wyliczyć różnicę między wartością ze zmiennej Var0 w aktualnym stemplu czasowym i wartością ze zmiennej Var0 z czasu np. 5 minut wstecz i zapisac to do tabeli jako zmienna Var1 z aktualnym stemplem czasowym
Wiem jak odczytac wartosc aktualna, wiem jak odczytac wartosc wczesniejsza (np 5 minut do tylu), wiem jak zapisac jakas wartosc do bazy SQL ale nie mam pojecia jak napisac skrypt SQL'a aby wyliczyl mi ta roznice i zapisal to do tabeli
MPolo
A.L.E.C - 18-03-2006 01:15
=?iso-8859-2?Q?Re:_R=F3=BFnica_warto=B6ci_w_SQL'u?=
MPolo wrote: > Użytkownik "Witek Świerzy" <wswier@sgh.waw.pl> napisał w wiadomości > news:dva24v$o65$1@amigo.idg.com.pl... >>> > > Dobrze, postaram się to uszczegółowć: > > Mam tabelę: > > ---------------------+------+----- > DataCzas | Var0 | Var1 > ---------------------+------+----- > 2006-03-16 17:00:00 | 2567 | ???? > 2006-03-16 17:01:00 | 2579 | ???? > 2006-03-16 17:02:00 | 2594 | ???? > 2006-03-16 17:03:00 | 2594 | ???? > 2006-03-16 17:04:00 | 2600 | ???? > 2006-03-16 17:05:00 | 2604 | ???? > > zmienna Var0 w tabeli jest wartością narastającą (licznik) > teraz chcę wyliczyć różnicę między wartością ze zmiennej Var0 > w aktualnym stemplu czasowym i wartością ze zmiennej Var0 z czasu > np. 5 minut wstecz i zapisac to do tabeli jako zmienna Var1 > z aktualnym stemplem czasowym
w uproszczeniu (nie na każdej bazie przejdzie)
INSERT INTO tabela (dataczas, var0) SELECT now(), a.var0 - b.var0 FROM tabela a, tabela b WHERE a.dataczas = jakis czas AND b.dataczas = jakiś czas - 5 minut AND warunek łączący tabele a i b
czy jakos tak, pokombinuj
-- Aleksander 'A.L.E.C' Machniak http://alec.pl gg-2275252 LAN Management System Developer http://lms.alec.pl
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?=
Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?=
=?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?=
[MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?=
=?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?=
Oracle PL/SQL Wstawianie =?ISO-8859-2?Q?wynik=F3w_kolekcji_d?==?ISO-8859-2?Q?o_tabeli?=
[MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?=
=?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?=
[Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?=
=?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?=
zanotowane.pldoc.pisz.plpdf.pisz.planette.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 |
|