Novo

Forum kao aplikacija na telefonu

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

Potreban last_day datum meseca u izabranom periodu bez tabele, dummy upit putem DUAL tabele

  • 10 odgovora
  • 5.319 pregleda

Najnovija ↓

Potreban last_day datum meseca u izabranom periodu bez tabele, dummy upit putem DUAL tabele 15.11.2017. u 14:44 · pre 109 meseci #1
Pozdrav, potreban mi je upit koji vraca zadnji dan svakog meseca iz izabranog perioda. Ulazni parametri su mi pocetni i krajnji datum. To mi treba bez tabele jer kapiram da je brze nego da skeniram moju tabelu u kojoj imam mnogo redova pa izvlacim ovaj podatak.

Pisano nekim pseudo kodom ovo mi treba :

SELECT LAST_DAY(_date) FROM DUAL WHERE _date BETWEEN start_date AND end_date

Ovaj kod radi nad mojom tabelom ali ima jako puno redova i nemam mogućnost da rezultat skratim tako da radi brzo :

SELECT LAST_DAY(t1.date) date
FROM t1
WHERE t1.datum>=('2017-07-01') AND t1.datum<=('2017-08-31')
GROUP BY MONTH(t1.date)

Ocekivani rezultat ovog upita su 2 reda jer je pocetni datum u julu a krajnji u avgustu, znaci 2 mjeseca, evo rezultata :
31.07.2017
31.08.2017


Imam osecaj da se ovo mora da moze da se izvuce bez tabela, putem one DUAL tabele ili cega li. Nisam mogao pronaci kako da to izvedem. Ako moze da se ne predlaze optimizacija mog upita koji sada radi jer sam to vec probao i ne uspeva.

Hvala unapred.
Re: Potreban last_day datum meseca u izabranom periodu bez tabele, dummy upit putem DUAL tabele 15.11.2017. u 16:58 · pre 109 meseci #6
Citat:
Branimir Maksimovic:
Svaki jezik danas ima biblioteku za manipulaciju datumima, ne kapiram sta ce mu baza za ovo?

Često se u praksi dešava da se zahtev promeni sa "poslednji dan u mesecu" na "poslednji radni dan u mesecu", i onda ti biblioteka za manipulaciju datumima ne znači ništa, a ako radiš sa bazom promena može da bude trivijalna (naravno, zavisi i kako si implementirao stvari u bazi). Ne kažem da uvek treba raditi sa bazom, ali nekad ima logike i ne razmatrati druga rešenja.
Re: Potreban last_day datum meseca u izabranom periodu bez tabele, dummy upit putem DUAL tabele 15.11.2017. u 18:03 · pre 109 meseci #8
Branimire treba mi upit sa kolonom poslednji datum u mesecu sa presekom na taj dan i jos mnogo toga. sve to eksportujem u Excel. zelim da to radim iz baze jer su mi svi podaci tu. zasto bih to radio u programskom jeziku kad su mi svi podaci u bazi?

i jedan savet, umesto da pitas sta ce ti to trebao bi da pomognes ako mozes a ne da pises postove koji apsolutno ne pomazu?! ne vidim svrhu tvojih postova.

sutra cu postaviti upit.
Re: Potreban last_day datum meseca u izabranom periodu bez tabele, dummy upit putem DUAL tabele 15.11.2017. u 20:03 · pre 109 meseci #11
ovaj kod mi daje ono sto sam trazio, promenio sam ga onako kako mi odgovara, za izvrsavanje nije potrebno imati nijednu tabelu. izvrsi se veoma brzo, mnogo brze nego sto sam ja mogao izvuci iz svoje tabele. period sam namestio od 01.07.2017 do 15.11.2017.

Code:

SELECT 
LAST_DAY(DATE_FORMAT(m1, '%Y-%m-%d')) datum

FROM
(
SELECT 
('2017-07-01' - INTERVAL DAYOFMONTH('2017-07-01')-1 DAY) 
+INTERVAL m MONTH AS m1
FROM
(
SELECT @rownum:=@rownum+1 AS m FROM
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) t1,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) t2,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) t3,
(SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) t4,
(SELECT @rownum:=-1) t0
) d1
) d2 
WHERE m1<='2017-11-15'
ORDER BY m1
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme