banjalukaforum.com
https://banjalukaforum.com/

Razni vidovi pomoci
https://banjalukaforum.com/viewtopic.php?f=18&t=65462
Stranica 1 od 4

Autoru:  Archangel [ 21 Dec 2014, 14:26 ]
Tema posta:  Razni vidovi pomoci

Imam jedno strucno pitanjce...

Pokusavam odraditi select u oracle bazi koji ce uzeti sve unikatne redove... To mi radi perfektno... Medjutim, kada trebam da odradim sume, tu mi vrati one izbrisane duple redove...

Naime, logika je sljedeca... u jednoj tabeli ima 60k redova, od kojih je 10k duplih.... Ti dupli se razlikuju prema koloni ISPRAVKA, u kojoj postoji J i N... I postoji kolona IZNOS..

E sad, kada ja radim select, u zavisnosti od J i N, ja trebam da stavim da IZNOS bude u koloni NESTO i NESTO2 u zavisnosti od J i N iz polja ISPRAVKA... tj nesto u fazonu

case when ISPRAVKA = 'J' then IZNOS else 0 end NESTO
case when ISPRAVKa = 'N' then IZNOS else 0 end NESTO2

u principu, cim ovo odradim, vrati se tih 10k redova, ali iznosi budu upisani dobro (tj ne ponavljaju se duplo).

kod je u principu ovako nesto:

Kod:
select distinct tabela.id
case when tabela2.ispravka = 'J' then tabela2.iznos else 0 end nesto,
case when tabela2.ispravka = 'N' then tabela2.iznos else 0 end nesto2
from tabela,
       tabela2
where tabela.id = tabela2.id


Pokusao sam i sa sum(decode), i dodao group by na kraju, ali ni to nije pomoglo...

Autoru:  Digresija [ 22 Dec 2014, 14:52 ]
Tema posta:  Re: Razni vidovi pomoci

Jebe lud zbunjenog :D
Nisam siguran da sam shvatio sta zelis i sta ti treba, ali pokusacu sa citanjem tvojih misli:

Kod:
select distinct tabela.id,
sum(case when tabela2.ispravka = 'J' then tabela2.iznos else 0 end) over(partition by tabela.id) nesto,
sum(case when tabela2.ispravka = 'N' then tabela2.iznos else 0 end) over(partition by tabela.id) nesto2
from tabela,
       tabela2
where tabela.id = tabela2.id;


Hint: Analytic functions -> SUM() OVER()

Autoru:  Archangel [ 22 Dec 2014, 18:53 ]
Tema posta:  Re: Razni vidovi pomoci

Hm... ovo nisam pokusao, a izgleda mi ok... Dobro citas misli :)

Tj, radio sam distinct, sum, ali nisam dodavao over partition by... Ovo bih definitivno mogao pokusati, i ima mi smisla...

U principu, za sve IDeve koji imaju J u navedenoj koloni, njihove iznose treba sabrati u jednu kolonu... Isto tako za N... Tj

Kod:

ID    IZNOS     ISPRAVKA
1      100             N
2      50              N
2      120             J
3      130             N
4      130             N
4      100             J
5      110             N
5      150             J

Rezultat

ID    NESTO    NESTO2
1       100          0
2       50         100
3       130          0
4       130        100
5       110        150


Ali mislim da se to postize ovim tvojim, bar mi izgleda tako... U principu i ne mora SUM OVER s obzirom da jedan ID moze imati max 2 reda, jedan za J, jedan za N... Ali ne znam koju drugu opciju iskoristiti... Pokusao sam i sa dva selecta... jedan koji ce uzeti samo J, drugi koji ce uzeti samo N, a onda u osnovnom selectu staviti da u jednu kolonu uzima podatke iz prvog a u drugoj iz drugog selecta... Ali mi je izbacivalo invalid identifier u where klauzuli... Sad cu odraditi create tabele iz primjera, i pokusati ovo tvoje :)

Autoru:  Digresija [ 22 Dec 2014, 21:22 ]
Tema posta:  Re: Razni vidovi pomoci

Kod:
drop table tabela purge;

drop table tabela2 purge;

create table tabela(id number);

create table tabela2(id number, iznos number, ispravka varchar2(1));

insert into tabela
select level
from dual
connect by level <=5;

insert into tabela2
values(1, 100, 'N');

insert into tabela2
values(2, 50, 'N');

insert into tabela2
values(2, 120, 'J');

insert into tabela2
values(3, 130, 'N');

insert into tabela2
values(4, 130, 'N');

insert into tabela2
values(4, 100, 'J');

insert into tabela2
values(5, 110, 'N');

insert into tabela2
values(5, 150, 'J');

commit;

set autotrace on trace explain statistics
set linesize 180 pages 1000


select distinct tabela.id,
sum(case when tabela2.ispravka = 'J' then tabela2.iznos else 0 end) over(partition by tabela.id) as ispravka_J,
sum(case when tabela2.ispravka = 'N' then tabela2.iznos else 0 end) over(partition by tabela.id) as ispravka_N
from tabela,  tabela2
where tabela.id = tabela2.id
order by tabela.id;

        ID ISPRAVKA_J ISPRAVKA_N
---------- ---------- ----------
         1          0        100
         2        120         50
         3          0        130
         4        100        130
         5        150        110

Execution plan
----------------------------------------------------------
Plan hash value: 3084317323

--------------------------------------------------------------------------------
| Id  | Operation            | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |         |     8 |   328 |     6  (34)| 00:00:01 |
|   1 |  SORT UNIQUE         |         |     8 |   328 |     5  (20)| 00:00:01 |
|   2 |   WINDOW SORT        |         |     8 |   328 |     6  (34)| 00:00:01 |
|*  3 |    HASH JOIN         |         |     8 |   328 |     5  (20)| 00:00:01 |
|   4 |     TABLE ACCESS FULL| TABELA  |     5 |    65 |     2   (0)| 00:00:01 |
|   5 |     TABLE ACCESS FULL| TABELA2 |     8 |   224 |     2   (0)| 00:00:01 |
--------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   3 - access("TABELA"."ID"="TABELA2"."ID")

Note
-----
   - dynamic sampling used for this statement (level=2)


Statistiken
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          6  consistent gets
          0  physical reads
          0  redo size
        778  bytes sent via SQL*Net to client
        524  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
          5  rows processed




-- varijanta broj 2.:

select id,
       max(case ispravka when 'J' then suma else 0 end) as ispravka_J,
       max(case ispravka when 'N' then suma else 0 end) as ispravka_N
from (
select tabela.id,
tabela2.ispravka,
sum(iznos) as suma
from tabela, tabela2
where tabela.id = tabela2.id
group by tabela.id, tabela2.ispravka)
group by id
order by id;

        ID ISPRAVKA_J ISPRAVKA_N
---------- ---------- ----------
         1          0        100
         2        120         50
         3          0        130
         4        100        130
         5        150        110


Execution plan
----------------------------------------------------------
Plan hash value: 1767293396

---------------------------------------------------------------------------------
| Id  | Operation             | Name    | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------
|   0 | SELECT STATEMENT      |         |     5 |   140 |     6  (34)| 00:00:01 |
|   1 |  SORT GROUP BY        |         |     5 |   140 |     6  (34)| 00:00:01 |
|   2 |   VIEW                |         |     8 |   224 |     6  (34)| 00:00:01 |
|   3 |    HASH GROUP BY      |         |     8 |   328 |     6  (34)| 00:00:01 |
|*  4 |     HASH JOIN         |         |     8 |   328 |     5  (20)| 00:00:01 |
|   5 |      TABLE ACCESS FULL| TABELA  |     5 |    65 |     2   (0)| 00:00:01 |
|   6 |      TABLE ACCESS FULL| TABELA2 |     8 |   224 |     2   (0)| 00:00:01 |
---------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   4 - access("TABELA"."ID"="TABELA2"."ID")

Note
-----
   - dynamic sampling used for this statement (level=2)


Statistiken
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          6  consistent gets
          0  physical reads
          0  redo size
        778  bytes sent via SQL*Net to client
        524  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          1  sorts (memory)
          0  sorts (disk)
          5  rows processed



        ID ISPRAVKA_J ISPRAVKA_N
---------- ---------- ----------
         1          0        100
         2        120         50
         3          0        130
         4        100        130
         5        150        110




Analiticke funkcije trose vise CPU i temporary tablespace zbog sortiranja, ali omogucuju kreiranje kompleksnih i fleksibilnih upita...

Autoru:  Archangel [ 22 Dec 2014, 22:34 ]
Tema posta:  Re: Razni vidovi pomoci

Radi i prva verzija dobro, ali ni ovo drugo nije lose rjesenje... Slicno sam i ja krenuo, ali mi je problem koristio over partition...

Tj bilo da radim sum, bilo da radim max, radio sam samo to, bez over parition... i u svakom mogucem slucaju mi je davao isti rezultat, a to je duple redove (iako je iznose upisivao ok)...

Uglavnom, pokusao sam kod sebe tvoj prvi nacin i radi dobro, probacu sutra na malo vecem broju podataka, da vidim koliko ce trajati obrada...

Hvala puno...

Autoru:  Digresija [ 22 Dec 2014, 23:03 ]
Tema posta:  Re: Razni vidovi pomoci

Ajd prije nego sto pokrenes taj SQL, lupi prvo ovo:
Kod:
set autotrace on trace explain statistics
set linesize 180 pages 1000
set timing on


pa mi onda kopiraj rezultat ot autotrace-a (trace, explain plan i statistics) ...

Autoru:  Archangel [ 23 Dec 2014, 22:36 ]
Tema posta:  Re: Razni vidovi pomoci

Nije bas da to mogu odraditi, posto imam ogranicene privilegije... Tj, imam predefinisane tabele, jedino sto mogu raditi je select za popunjavanje kolona u tim tabelama...

Autoru:  baki [ 25 Mar 2015, 20:11 ]
Tema posta:  Re: Razni vidovi pomoci

E ovako,

imam u planu raditi fasadu na kuci, jos se nisam odlucio za boju, ima tu i neki predulaza balkona ba bi htio malo da se poigramsa tim preko kompa da vidim kako to izgleda.

Skinuo sam SketchuUp a pretim i neke klipove na youtbe al tesko ja to mogu povezati.

Ima li neko to u malom prstu, da bi uradio za neki minimalac :) Ili neki dobar temelj za SketchuUP ?

Autoru:  Piro [ 21 Maj 2015, 17:19 ]
Tema posta:  Re: Razni vidovi pomoci

Zna li neko za neki dobar program za HTML/CSS koji ima neki prozor da reflektuje promjene coda u nekom browser prozoru u realnom vremenu. Coda ima slican fazon, ali mi ne odgovara, a ovih par sto sam nasao su jos beta i nestabilni.

Autoru:  bluvulture [ 21 Maj 2015, 18:41 ]
Tema posta:  Re: Razni vidovi pomoci

brackets?

Autoru:  sinip [ 21 Maj 2015, 19:30 ]
Tema posta:  Re: Razni vidovi pomoci

Зар нема у Дримвиверу то?

Autoru:  Minjon [ 21 Maj 2015, 22:14 ]
Tema posta:  Re: Razni vidovi pomoci

Sehxor je napisao:
Zna li neko za neki dobar program za HTML/CSS koji ima neki prozor da reflektuje promjene coda u nekom browser prozoru u realnom vremenu. Coda ima slican fazon, ali mi ne odgovara, a ovih par sto sam nasao su jos beta i nestabilni.

Brackets

Autoru:  NiZ [ 22 Maj 2015, 09:13 ]
Tema posta:  Re: Razni vidovi pomoci

Chrome Inspector.

Inace, moj izbor alatki:
- za nesto ozbiljnije WebStorm i PhpStorm
- za "nabrzaka": Notpad++ i vim
- za wordpress: WPIde plugin

Navodno je Grunt dobar izbor za to sto pitas, ali ja ne volim previse posrednike pa ga nisam nikada bas testirao da ti mogu reci nesto iz iskustva.


Nego, ima li neko iskustva sa Couchbase + ElasticSearch + Kibana?
Na momente dokumentacija je toliko stura da sam kopao po Gitu da nadjem neke funkcije i desifrujem Zephir da vidim gdje/sta/kako... (PHP SDK 2.0)

Autoru:  NiZ [ 22 Maj 2015, 10:27 ]
Tema posta:  Re: Razni vidovi pomoci

Chrome Inspector aka DevTools primjer:
http://prntscr.com/780qu3

Autoru:  Piro [ 22 Maj 2015, 11:48 ]
Tema posta:  Re: Razni vidovi pomoci

Znam za chrome inspect i to, ali nisam to trazio, vec neki dev tool tipa da bude kao notepad++ da ima syntax highlight, a pored negdje da mi prikazuje odmah promjene cim promjenim nesto u nekom browser prozoru. U chrome inspect ne mogu dovoljno brzo codirati, jer svaka izmjena treba tonu klikova :)

Probacu ovaj Brackets da vidim kako radi :)

Autoru:  Piro [ 22 Maj 2015, 15:11 ]
Tema posta:  Re: Razni vidovi pomoci

Probao sam Brackets, odlican je program. Radi posao sa CSS/HTML osvjezavanje u realnom vremenu. Jedina mozda zamjerka sto nema neki embedded browser u sebi nego koristi zaseban Chrome prozor. Hvala djecaci :)

Autoru:  Archangel [ 03 Sep 2015, 19:53 ]
Tema posta:  Re: Razni vidovi pomoci

Imam SQLEXPRESS instaliran sa bazom podataka AdventureWorks...

Nadjoh jednu finu bazu podataka na netu vezanu za baseball, ali nikako da je uspijem ucitati... Naime, dobio sam sql fajl koji ima query za kreiranje baze podataka, ali kad ga pokrenem (open) nista se ne desi, a kada odradim execute query u samom SQL management studiju, izbaci mi gresku insufficient memory...

Pokusao sam preko command prompta da odradim sqlcmd -d Baseball -i lahman2014_beta.sql, medjutim izbacuje nekakvu gresku kao da ne prepoznaje sql server ili tako nesto...

Ima li ko kakvu ideju kako bih mogao odraditi import...

Naime, rijec je o bazi podataka za zadnjih desetak godina... svaka godina je jedan fajl, zadnjih par godina su sql fajlovi, prije toga imam accdb... zelio bih da to importujem sve na SQLEXPRESS kako bih se malkice igrao sa tim :)

EDIT:

Snadjoh se... skinuh access bazu, i odradim import :D

Autoru:  pilot babo [ 02 Dec 2015, 20:12 ]
Tema posta:  Re: Razni vidovi pomoci

Vjerovatno ce biti ismijavanja, al' ajde da priupitam...nemam blage veze sa programiranjem odmah da napomenem.

Elem, postoji li neki brzi nacin da jedan excelov sheet pretocim u aplikaciju za android?
Konkretno dosta funkcija i obracuna ima, ali krajnji rezultat zavisi od unosa 4-5 parametara, uz mozda jedan padajuci meni. Samo bih nekako linkovao odredjene celije i to bi bilo to.

Aj sad udrite u glavu :P

Autoru:  Piro [ 03 Dec 2015, 00:31 ]
Tema posta:  Re: Razni vidovi pomoci

Najlaksa solucija ti je da napravis to u html sa JS i onda kompajliras u android app preko Ludei recimo.

Autoru:  NiZ [ 04 Dec 2015, 12:57 ]
Tema posta:  Re: Razni vidovi pomoci

Moze malo preciznije?
Pretpostavljam da ti treba nesto relativno dinamicno? Prikaz na upit, mozda unos novih podataka?
Svasta se moze skarabudziti, ali zavisi od specifikacija...

Jedan od nacina je da napravis sajt od toga pa onda samo napravis "aplikaciju" koja samo ucitava taj tvoj sajt. Ima tih "kontejnera" naci po netu, imam nesto pisano u Delphi-ju od stotinjak linija koda (toliko je jednostavno). Tako su ti podaci dostupni i sa drugih platformi; ako nije android, mozes podatke vidjeti/ucitati iz browsera. (login ako neces da budu public) - tako sam nesto pravio... skarabudzeno, ruzno
Excel eksportujes kao CSV (ili XML) i onda taj fajl obradjujes da dodjes do podataka. A u zavisnosti od tipa podataka, mogucnosti se granaju.... Npr, jedna od opcija je i wordpress+woocommerce ako je forma podataka odgovarajuca. Ako te ne zanima izgled, instaliras jedno, dodas mu drugo i onda importujes csv fajl kao listu proizvoda i svi su tu sa parametrima i osobinama. - i to sam pravio i to je vec nesto prihvatljivo, ali bespotrebno za mali uzorak, za internu upotrebu
Ovo mi je prvo palo na pamet jer cesto firme tako te podatke vec u nekoj formi imaju na web-u (nekada samo za internu upotrebu) pa se vec postojeca baza moze lako iskoristiti i za ovo...

Ili jednostavno nadjes nekoga da ti napravi app koji moze da ucita fajl i obradi/prikaze podatke kako ti hoces, tako da kada se podaci promijeni ili hoces to isto za podatke iz druge poslovnice npr, da samo izaberes drugi fajl i imas i to sve da radi - custom rijesenje, uvijek najbolja solucija

Za postojece aplikacije koje rade nesto slicno mozda ne bi bilo lose da postavis pitanje na podforumu "software" ili neki drugi, posto puno ljudi ne cita skrabodine na ovom pdf-u a mozda je neko nesto vidio na store-u...

Stranica 1 od 4 Sva vremena su u UTC [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/