tabela z datami
krzysiek - 18-05-2006 00:16
tabela z datami
Witam, mam problem. Chcialbym zrobic sobie widok, ktory wyswietlalby mi po kolei daty w postaci YYYY-MM, zaczynajac od np. 2000-01 do dzisiaj.
Stworzylem sobie cos co wrzuca mi do jakiejs tabeli te wartosci, ale chcialbym, zeby to byl widok, w ktorym beda sie one wyswietlaly, nie chce tego na stale w bazie. Jak to zrobic??
Z gory dzieki za pomoc!! K
a tutaj moj kod: DECLARE @MIESIAC INT DECLARE @ROK INT
SET @MIESIAC = 1 SET @ROK = 2000
TRUNCATE TABLE TABELA_temp
WHILE 1=1 BEGIN
IF @ROK=YEAR(GETDATE()) AND @MIESIAC=MONTH(GETDATE()) BREAK
INSERT TABELA_temp SELECT CONVERT(CHAR(4),@ROK) + '-' + CASE WHEN LEN(@MIESIAC)=1 THEN '0'+CONVERT(CHAR(2),@MIESIAC) WHEN LEN(@MIESIAC)=2 THEN CONVERT(CHAR(2),@MIESIAC) END
IF @MIESIAC = 12 BEGIN SET @ROK = @ROK + 1 SET @MIESIAC = 1 END ELSE BEGIN SET @MIESIAC = @MIESIAC + 1 END END
=?ISO-8859-2?Q?Pawe=B3_Matejski?= - 18-05-2006 00:16
krzysiek wrote: > Witam, > mam problem. Chcialbym zrobic sobie widok, ktory wyswietlalby mi po kolei > daty w postaci YYYY-MM, zaczynajac od np. 2000-01 do dzisiaj.
Zrób funkcje zwracającą zbiór, jeśli Twoja baza pozwala na takie funkcje.
-- P.M.
krzysiek - 18-05-2006 00:16
> Zrób funkcje zwracającą zbiór, jeśli Twoja baza pozwala na takie funkcje.
a potem?? jak wyswietlic ten zbior??
Borafu - 18-05-2006 00:16
krzysiek napisał(a): > Witam, > mam problem. Chcialbym zrobic sobie widok, ktory wyswietlalby mi po kolei > daty w postaci YYYY-MM, zaczynajac od np. 2000-01 do dzisiaj. > > Stworzylem sobie cos co wrzuca mi do jakiejs tabeli te wartosci, ale > chcialbym, zeby to byl widok, w ktorym beda sie one wyswietlaly, nie chce > tego na stale w bazie. Jak to zrobic??
Nie chcesz tego na stałe w bazie, ale wpisałeś to do tabeli. Czyli co? Będziesz tworzył tabelkę, robił na niej widok, a później usuwał tabelkę? Jakoś wyjątkowo zakręcony ten pomysł.
BTW to nie napisałeś o jaką bazę chodzi
> a tutaj moj kod: (...) > WHILE 1=1 > BEGIN > IF @ROK=YEAR(GETDATE()) AND @MIESIAC=MONTH(GETDATE()) BREAK Łojeju! Aleś to powykręcał! Nie prościej tak?
WHILE @ROK<>YEAR(GETDATE()) OR @MIESIAC<>MONTH(GETDATE()) BEGIN
Pozdro -- Borafu
krzysiek - 18-05-2006 00:16
> Nie chcesz tego na stałe w bazie, ale wpisałeś to do tabeli. Czyli co? > Będziesz tworzył tabelkę, robił na niej widok, a później usuwał tabelkę? > Jakoś wyjątkowo zakręcony ten pomysł.
napisalem, ze zrobilem tak (wpis do tabeli), bo tak umiem, ale chcialbym inaczej a przy okazji, to strasznie wolno mi to chodzi (ok. 2 minut). Nie wiecie czemu?? Moze jest jakis szybszy sposob?
> BTW to nie napisałeś o jaką bazę chodzi
SQL Server 2000
krzysiek - 18-05-2006 00:16
sorki, juz dziala!!
Borafu - 18-05-2006 00:16
krzysiek napisał(a): > > napisalem, ze zrobilem tak (wpis do tabeli), bo tak umiem, ale chcialbym > inaczej To, że nie umiesz to normalne. Z tym się nikt nie rodzi, to nie oddychanie - wszyscy się tego uczą. Zwróciłem Ci raczej uwagę na błąd logiczny - skoro nie chcesz wpisywac na stałe, to widok nieczego nie zmieni - on i tak przecież pobiera dane z Twojej tabelki, więc tylko skomplikowałeś koncepcję, nie zyskując nic w stosunku do zwykłego zapisania do tabelki i czytania bezpośrednio z niej.
Pozdro -- Borafu
krzysiek - 18-05-2006 00:16
> Zrób funkcje zwracającą zbiór, jeśli Twoja baza pozwala na takie funkcje.
ok, zrobilem funkcje, dziala, tylko teraz mam problem. Probuje wyswietlic rekordy od 2000-01 do dzisiaj. Naturalne jest wiec dla mnie wywolanie funkcji w takiej postaci:
SELECT * FROM MojaFunkcja( Year(getdate()), Month(getdate()))
no i niestety mi nie dziala. Nie moglem uzyc funkcji Getdate() w definicji funkcji, a przy wywolaniu tez nie moge??
jak to obejsc??
pozdrawiam, K
krzysiek - 18-05-2006 00:16
co najlepsze, to jak zadeklaruje zmienne, ktorym przypisze YEAR(getdate()), itd., to dziala. Tylko, ze chcialbym to zapisac jako widok, a chyba sie nie da tego zapisac z deklaracjami zmiennych, nie??
Pomozcie!!
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[MySQL] Czy da =?ISO-8859-2?Q?si=EA_wykonac_takie_powi=B1z?==?ISO-8859-2?Q?anie_mi=EAdzy_tabelami=2C_i_jak_to_odpyta=E6_? ==?ISO-8859-2?Q?=3F?=
[mysql] przenoszenie danych =?ISO-8859-2?Q?mi=EAdzy_tabelami_?==?ISO-8859-2?Q?w_r=F3=BFnych_bazach?=
SELECT MAX(nazwaPola) FROM tabela WHERE .... i ORA-01405: pobran? warto?ci? kolumny jest NULL
=?iso-8859-2?Q?=5Bmssql=5D_update_na_kilku_tabelach_jednocze= B6nie?=
[mysql] =?ISO-8859-2?Q?r=F3=BFnice_mi=EAdzy_tabelami?=
Tabela aktualnych =?ISO-8859-2?Q?KRAJ=D3W?=
[MSSQL] Rekurencja? Tabela, która tworzy drzewko
[MSSQL] Tabela jako argument funkcji/procedury?
[MySql] - jedna tabela, dwa aliasy w zapytaniu
problem z select MAX (kolumna) from tabela
zanotowane.pldoc.pisz.plpdf.pisz.plkfia-tek.keep.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 |
|