Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Izracunati broj radnih dana izmedju dva datuma

[es] :: MySQL :: Izracunati broj radnih dana izmedju dva datuma

[ Pregleda: 8173 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

saladinche
saladin kralj
Novi Pazar

Član broj: 48031
Poruke: 49
82.117.197.*



Profil

icon Izracunati broj radnih dana izmedju dva datuma21.12.2017. u 12:51 - pre 8 meseci
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.

salash
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 14716
*.com
Via: [es] mailing liste

Sajt: mysql.rs


Profil

icon Re: Izracunati broj radnih dana izmedju dva datuma21.12.2017. u 13:07 - pre 8 meseci
SELECT Radnik, COUNT(*) FROM tabela WHERE Datum BETWEEN '2017-11-1' AND
'2017-11-31' GROUP BY Radnik;

si to hteo?
 
Odgovor na temu

saladinche
saladin kralj
Novi Pazar

Član broj: 48031
Poruke: 49
82.117.197.*



Profil

icon Re: Izracunati broj radnih dana izmedju dva datuma21.12.2017. u 13:19 - pre 8 meseci
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.
salash
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 14716
*.com
Via: [es] mailing liste

Sajt: mysql.rs


Profil

icon Re: Izracunati broj radnih dana izmedju dva datuma21.12.2017. u 13:24 - pre 8 meseci
mozes da imas vise radnih naloga po danu za istog coveka?

oces tako za sve radnike ili samo za jednog ranika?
 
Odgovor na temu

saladinche
saladin kralj
Novi Pazar

Član broj: 48031
Poruke: 49
82.117.197.*



Profil

icon Re: Izracunati broj radnih dana izmedju dva datuma21.12.2017. u 13:25 - pre 8 meseci
Trebaji mi obe informacije, ali mi je proritetnija ova za svakog posebno.
salash
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 14716
*.dynamic.sbb.rs.

Sajt: mysql.rs


Profil

icon Re: Izracunati broj radnih dana izmedju dva datuma21.12.2017. u 15:12 - pre 8 meseci
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>



 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 14716
*.dynamic.sbb.rs.

Sajt: mysql.rs


Profil

icon Re: Izracunati broj radnih dana izmedju dva datuma21.12.2017. u 15:17 - pre 8 meseci
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;




 
Odgovor na temu

saladinche
saladin kralj
Novi Pazar

Član broj: 48031
Poruke: 49
82.117.197.*



Profil

icon Re: Izracunati broj radnih dana izmedju dva datuma22.12.2017. u 10:33 - pre 8 meseci
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.
salash
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 14716
*.dynamic.sbb.rs.

Sajt: mysql.rs


Profil

icon Re: Izracunati broj radnih dana izmedju dva datuma22.12.2017. u 11:10 - pre 8 meseci
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

 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4481



Profil

icon Re: Izracunati broj radnih dana izmedju dva datuma22.12.2017. u 13:13 - pre 8 meseci
u 100 marke da mu datum nije datetime nego varchar sa custom date formatom ;)
 
Odgovor na temu

saladinche
saladin kralj
Novi Pazar

Član broj: 48031
Poruke: 49
82.117.197.*



Profil

icon Re: Izracunati broj radnih dana izmedju dva datuma22.12.2017. u 14:48 - pre 8 meseci
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.

salash
Prikačeni fajlovi
 
Odgovor na temu

[es] :: MySQL :: Izracunati broj radnih dana izmedju dva datuma

[ Pregleda: 8173 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.