Wypowiedzi
-
Paweł B.:
Na początek zrób porządek z warunkami po WHERE, bo
warunek1 AND warunek2 OR warunek1 AND warunek3
to nie to samo, co (warunek1 AND warunek2) OR (warunek1 AND warunek3)
akurat to to samo ;) operator AND ma wyższy priorytet niż OR (przynajmniej w Oracle i MSSQL) -
Oracle udostępnia kilka maszyn wirtualnych ze skonfigurowanymi środowiskami do zabaw deweloperskich. z tego co kojarzę to nie ma tam ograniczeń na czas - jedynie nie można ich używać na produkcji (ale zawsze warto się upewnić czy nie innych obostrzeń).
http://www.oracle.com/technetwork/community/developer-... -
dynamiczny sql budowany po widokach systemowych np. all_tab_cols i odpalany z plsql (execute immediate albo dbms_sql)
-
może poprawi a może pogorszy. tutaj masz wszystko ładnie opisane:
https://msdn.microsoft.com/en-us/library/bb510680.aspx -
słowo-wytrych to UNPIVOT. Potem odfiltrowujesz nulle i gotowe
-
a u mnie działa:
data_a -> 2016/01/01
data_b -> 2016/12/31
wynik:
2016/02
2016/01
2016/03
2016/04
2016/05
2016/06
2016/07
2016/08
2016/09
2016/10
2016/11
2016/12 -
zakładam że baza to Oracle.
jak słusznie podpowiedział kolega wyżej, możesz użyć tzw recursive subqueries (tylko uwaga - w Oracle trzeba wyspecyfikować listę kolumn przy definicji podzapytania). Albo CONNECT BY LEVEL. Albo zupełnie odjechane MODEL:
SELECT TO_CHAR(x, 'RRRR/MM')
FROM (SELECT to_date('&data_a') x FROM dual)
model RETURN ALL rows
dimension BY(1 y)
measures(x)
rules(x [ FOR y FROM 0 TO months_between(to_date('&data_b'),to_date('&data_a')) increment 1 ] = add_months(to_date('&data_a'),cv(y)))
-
źródło: https://xkcd.com/1478/ -
do takich operacji służy klauzula PIVOT: https://technet.microsoft.com/pl-pl/library/ms177410%28...
EDIT: ups, nie zauważyłem komentarza wyżej ;) Ten post został edytowany przez Autora dnia 11.03.16 o godzinie 13:09 -
zamień sobie daty na klasę POSIXlt albo użyj czegoś z pakietu lubridate
-
czyli de facto interesuje cię reprezentacja binarna liczb z zakresu 1 do 2^30 - popatrz na funkcję intToBin z pakietu R.utils (albo intToBits z base)Ten post został edytowany przez Autora dnia 24.02.16 o godzinie 11:03
-
spróbuj stworzyć sobie na boku ramkę visit_id, pvsource z przesunięciem o 1 wiersz i przelecieć się po tym zwykłym ifelse. jeśli ram jest problemem to możesz podzielić to na mniejsze kawałki po N wierszy.
-
rozumiem że chcesz zmienić nazwy w ramce danych?
names(df) <- paste(seq_along(names(df)),names(df))
-
jakoś tak?
SELECT '''' || replace('&x', ',', ''',''') || '''' AS x FROM dual;
-
jeszcze takie cudo można by spróbować - nigdy nie próbowałem niczego czegoś takiego wykorzystywać ale może się uda twój problem jakoś pod to podpiąć.
http://blog.yenlo.com/nl/oracle-apex-sessions-across-s...
http://joelkallman.blogspot.com/2010/10/custom-authent...
a jak nie zadziała to już nie mam więcej typów.
powodzenia ;) -
pewnie szukasz komendy
SET SERVEROUTPUT ON;
-
a może to wystarczy http://thinstation.github.io/thinstation/
-
możesz jeszcze spróbować &APP_SESSION. albo na bieżąco dynamicznie składać linki przy wyświetlaniu raportu (np tak jak tu http://docs.oracle.com/database/121/HTMDB/concept_sub.... )
-
może http://d3js.org/