Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 22 odgovora
  • 7.263 pregleda

Najnovija ↓

Re: Još jedna mozgalica o datumima 01.09.2009. u 21:47 · pre 209 meseci #21
@ CAptPicard: pa posle kazu nema vise sta da se izmisli u SQL-u, sve je vec izmisljeno i zna se kako se radi, samo treba pronaci. Sipak, ovako originalnih resenja nema kao na nasem forumu :-)

Bas si se potrudio da pokupis sve slucajeve preklapanja. I Datediff je bolje nego Date1-Date2, trebalo bi da se i moji kveriji promene, ali me mrzi.

Malo sam formatirao kod da se bolje vidi sta se desava:
Code:

SELECT ukupno,
       sifra_drzava,
       naziv
FROM   (SELECT   (Sum(aa) + Sum(cc) + Sum(dd) + Sum(ee)) AS ukupno,
                 sifra_drzava,
                 naziv
        FROM     (SELECT (Iif(aaa > 0,aaa,0)) AS aa,
                         (Iif(ccc > 0,ccc,0)) AS cc,
                         (Iif(ddd > 0,ddd,0)) AS dd,
                         (Iif(eee > 0,eee,0)) AS ee,
                         sifra_drzava,
                         naziv
                  FROM   (SELECT   Sum(a) AS aaa,
                                   Sum(c) AS ccc,
                                   Sum(d) AS ddd,
                                   Sum(e) AS eee,
                                   sifra_drzava,
                                   naziv
                          FROM     (SELECT sifra_drzava,
                                           naziv,
                                           (Iif((datum_prijave >= :datumod
                                                 AND datum_odjave < :datumdo),Datediff("d",datum_prijave,datum_odjave),
                                                0)) AS a,
                                           (Iif((datum_prijave < :datumod
                                                 AND datum_odjave <= :datumdo),Datediff("d",:datumod,datum_odjave),
                                                0)) AS c,
                                           (Iif((datum_prijave <= :datumod
                                                 AND datum_odjave >= :datumdo),Datediff("d",:datumod,:datumdo),
                                                0)) AS d,
                                           (Iif((datum_prijave > :datumod
                                                 AND datum_odjave = :datumdo),Datediff("d",datum_prijave,:datumdo),
                                                0)) AS e
                                    FROM   tblgosti AS c,
                                           tbldrzave AS d
                                    WHERE  c.sifra_drzava = d.sifra)
                          GROUP BY sifra_drzava,
                                   naziv))
        GROUP BY sifra_drzava,
                 naziv)
WHERE  ukupno <> 0


I zakacio sam korektnu verziju resenja sa koriscenjem tabele datuma, mislim da je prva otisla s greskom (+1 dan)

:-)
Re: Još jedna mozgalica o datumima 01.09.2009. u 21:57 · pre 209 meseci #22
Ma Zidar, ne znam šta da kažem na tvoj post! Istina, rješenja su stvarno originalna i jako puno se može naučiti!
U svakom slučaju, imaš pivo kada se vidimo! :-)

A pošto si tako lijepo formatirao kod da nisam mogao ostati ravnodušan, sada ne mogu a da još ne popravim taj query, sutra obećajem popravljenog!

Da, pokrio sam sva preklapanja, krenuo sam od crteža na papiru, dok nisam došao do konačnog rezultata, a onda sam krenuo korak po korak (tvoja škola :-) ) dok nisam došao do rješenja u sql-u (zato i je toliko ovih nepotrebnih sum)...
Potpis
F
Odgovori
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme