Novo

Forum kao aplikacija na telefonu

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

  • 10 odgovora
  • 11.262 pregleda

Najnovija ↓

Izracunati broj radnih dana izmedju dva datuma 21.12.2017. u 13:51 · pre 107 meseci #1
Pozdrav svima, imam sledeci slučaj:
U bazi mi se svakog dana ponavljaju radnici koji su obavili svoj zadatak.
Broj naloga na dnevnom nivou je od 1 do 50.... i onda imam polje "Datum, Radnik, Zarada" pa sledeći red je opet "Datum, Radnik, Zarada" i tako redom.

Sada hoću da izračunam koliko je radnik imao radnih dana između 01.11.2017 i 31.11.2017 po principu da mi proveri da il za datog radnika postoji neki zapis za svaki datum i tako računa.
Hvala u napred.
Potpis
salash
Re: Izracunati broj radnih dana izmedju dva datuma 21.12.2017. u 14:19 · pre 107 meseci #3
Nou,.
Kao rezultat, ovo mi daje radnika i koliko je radnih naloga imao svakog dana.

Meni treba samo da mi izbroji datume u kojima se pojavljuje dati radnik.
Potpis
salash
Re: Izracunati broj radnih dana izmedju dva datuma 21.12.2017. u 16:12 · pre 107 meseci #6
ovo ?

Code:

mysql> select * from t2;
+--------+---------------------+--------+
| radnik | datum               | zarada |
+--------+---------------------+--------+
|      1 | 2017-11-02 10:10:10 |      0 |
|      1 | 2017-11-02 10:11:10 |      0 |
|      1 | 2017-11-02 10:13:10 |      0 |
|      1 | 2017-11-02 14:13:10 |      0 |
|      1 | 2017-11-02 15:13:10 |      0 |
|      1 | 2017-11-02 16:13:10 |      0 |
|      1 | 2017-11-03 16:13:10 |      0 |
|      1 | 2017-11-04 16:13:10 |      0 |
|      1 | 2017-11-04 16:15:10 |      0 |
|      2 | 2017-11-04 16:15:10 |      0 |
|      3 | 2017-11-04 16:15:10 |      0 |
|      4 | 2017-11-04 16:15:10 |      0 |
|      5 | 2017-11-05 16:15:10 |      0 |
|      6 | 2017-11-06 16:15:10 |      0 |
|      7 | 2017-11-07 16:15:10 |      0 |
|      7 | 2017-11-07 16:16:10 |      0 |
+--------+---------------------+--------+
16 rows in set (0.00 sec)

mysql> select count(distinct(date(datum))) from t2 where radnik=1;
+------------------------------+
| count(distinct(date(datum))) |
+------------------------------+
|                            3 |
+------------------------------+
1 row in set (0.00 sec)

mysql> select radnik, count(distinct(date(datum))) from t2 group by radnik;
+--------+------------------------------+
| radnik | count(distinct(date(datum))) |
+--------+------------------------------+
|      1 |                            3 |
|      2 |                            1 |
|      3 |                            1 |
|      4 |                            1 |
|      5 |                            1 |
|      6 |                            1 |
|      7 |                            1 |
+--------+------------------------------+
7 rows in set (0.00 sec)

mysql>


Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Izracunati broj radnih dana izmedju dva datuma 21.12.2017. u 16:17 · pre 107 meseci #7
za testiranje

Code:

CREATE TABLE `t2` (
  `radnik` int(11) DEFAULT NULL,
  `datum` datetime DEFAULT NULL,
  `zarada` int(11) DEFAULT NULL
) ENGINE=InnoDB;

INSERT INTO `t2` VALUES (1,'2017-11-02 10:10:10',0),(1,'2017-11-02 10:11:10',0),(1,'2017-11-02 10:13:10',0),(1,'2017-11-02 14:13:10',0),(1,'2017-11-02 15:13:10',0),(1,'2017-11-02 16:13:10',0),(1,'2017-11-03 16:13:10',0),(1,'2017-11-04 16:13:10',0),(1,'2017-11-04 16:15:10',0),(2,'2017-11-04 16:15:10',0),(3,'2017-11-04 16:15:10',0),(4,'2017-11-04 16:15:10',0),(5,'2017-11-05 16:15:10',0),(6,'2017-11-06 16:15:10',0),(7,'2017-11-07 16:15:10',0),(7,'2017-11-07 16:16:10',0);

select count(distinct(date(datum))) from t2 where radnik=1;
select radnik, count(distinct(date(datum))) from t2 group by radnik;



Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Izracunati broj radnih dana izmedju dva datuma 22.12.2017. u 11:33 · pre 107 meseci #8
Nije htelo baš ovako ali evo kako sam došao do rešenja:

SELECT radnik, COUNT ( DISTINCT datum ) AS "Broj radnih dana"
from t2
where radnik = :radnik and datum between :datum1 and :datum2
group by radnik

Hvala puno na pomoci.
Potpis
salash
Re: Izracunati broj radnih dana izmedju dva datuma 22.12.2017. u 12:10 · pre 107 meseci #9
tako ce da ti radi ako ti je datum "date" polje, ako ti je datum "datetime" polje (kao kod mene, valjda pamtis kad je neko nesto radio ne samo koji dan?) onda ti ne treba date() ostalo je koliko vidim isto :D
Potpis
arhimed
http://www.mysql.rs/ | http://elco.crsndoo.com/
Re: Izracunati broj radnih dana izmedju dva datuma 22.12.2017. u 15:48 · pre 107 meseci #11
Citat:
bogdan.kecman: tako ce da ti radi ako ti je datum "date" polje, ako ti je datum "datetime" polje (kao kod mene, valjda pamtis kad je neko nesto radio ne samo koji dan?) onda ti ne treba date() ostalo je koliko vidim isto :D


U Pravu si, polje datum je tipa "date" i nije htelo onako da radi. Onda sam krenuo da menjam i proradilo je sa ovim.
Potpis
salash
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme