Avko |
28.08.2016 11:50 |
Predmet:izracun sati za pon-pet sub i ned
SELECT CASE WEEKDAY( datum )
WHEN 0 THEN "radni dan"
WHEN 1 THEN "radni dan"
WHEN 2 THEN "radni dan"
WHEN 3 THEN "radni dan"
WHEN 4 THEN "radni dan"
WHEN 5 THEN 'subota'
WHEN 6 THEN 'nedjelja'
END dan, SUM( sati ) AS ukupnoSati
FROM zaposlenici
WHERE IDzaposlenik = 123
GROUP BY dan
LIMIT 0 , 30
trebam COUNT(radnidan),COUNT(subota),COUNT(nedjelja)
hvala |
zxz |
28.08.2016 20:07 |
Predmet:Re: izracun sati za pon-pet sub i ned
Zakaci tabelu da ne pravim hehehe. |
Avko |
29.08.2016 15:01 |
Predmet:Re: izracun sati za pon-pet sub i ned
oprosti, zaboravio sam najvazniji detalj a to je zakaciti sql fajl
evo ide |
Prilozi: zaposlenik.rar (Velicina datoteke:702 Bajt)
|
zxz |
29.08.2016 23:18 |
Predmet:Re: izracun sati za pon-pet sub i ned
PreuzmiIzvorni kôd (Text):SELECT COUNT(Datum) as UkupnoDana,
(SELECT COUNT(DATE_FORMAT(datum,'%a'))as d FROM `zaposlenik` WHERE DATE_FORMAT(datum,'%a') ="Sat")as Subota,
(SELECT COUNT(DATE_FORMAT(datum,'%a'))as d FROM `zaposlenik` WHERE DATE_FORMAT(datum,'%a') ="Sun")as Nedelja,
(SELECT COUNT(DATE_FORMAT(datum,'%a'))as d FROM `zaposlenik` WHERE DATE_FORMAT(datum,'%a') IN ('Mon','Tue','Wed','Thu','Fri'))as RadniDan
FROM `zaposlenik`
|
Gjoreski |
30.08.2016 00:02 |
Predmet:Re: izracun sati za pon-pet sub i ned
Eve pogledaj ovo.
Ovo je bilo malo zeznato.
PreuzmiIzvorni kôd (Visual Basic):SELECT
CASE WEEKDAY( datum )
WHEN 0 THEN "radni dan"
WHEN 1 THEN "radni dan"
WHEN 2 THEN "radni dan"
WHEN 3 THEN "radni dan"
WHEN 4 THEN "radni dan"
WHEN 5 THEN 'subota'
WHEN 6 THEN 'nedjelja'
END dan,
sum(TIMESTAMPDIFF(hour,CONVERT(CONCAT((datum) , ' ', odsati),DATETIME) , CONVERT(CONCAT((datum+ INTERVAL 1 DAY) , ' ', dosati),DATETIME)) )as ukupnoSati,
COUNT(*) as ContTip
FROM zaposlenik
WHERE ID = '29021966-33-0132'
GROUP BY dan
|
Gjoreski |
30.08.2016 02:36 |
Predmet:Re: izracun sati za pon-pet sub i ned
Uf nisam video da ZXZ je vec odgovorio ali moram ti ukazati neke stvare.
Vidim da se rade nosto oko preracun vremena a datume su najspecificni za obrada.
Moras voditi jako puno paznja oko izrada tabela za u buducnos da nemas puno problema.
Jas pred par godina sam radio jedna aplikacija za preracun radnog vremena za jedna firma i bogami sam se namucio na pocetki zbog to sto nisam napravio dobra tablela.
Jedna od najbitnih stvari je to da pored casot u pole gdje zapisujes pocetok ili kraj radnog vremena stoi i data.To je sve zbog laksi preracun.Lako je iz kompletno Vreme (dataum i cas) izdvoiti samo data ili samo cas ili bilo sta ali kad spajas data i vreme e to bas i ne ide lako (pogledaj koliko konverzije i spajajna morao sam da uradi za da mogu da oduzmem dve vremena) .
Iz ovi primera sta si dao u tabela vidi se da radno vreme pocijne u 18.00 danas a zavrsi sutra u 7 ujutro ,a imamo samo danasni datum i sad kako bi doslo ova tvoja matematika " 7-18" ?
Ja sam u gorni primer danasni datum povecao za jedam dan da mogu izracunati vrenena ali tu je problem kad u jednu sedmici jedan radnik jedan dan dolazi od 7 do 14 a jedan od 18 do 7 kako ces uzeti krajno vreme? U prvi slucaj imas pocetak i kraj radnog vremena u jedan dan , a u drugi slucaj imas poceak u jedan dan a kraj u drugi.
Ako si vec poceo neka aplikacija od ovog tipa razmisli oko ove sugestije ili daj opisi proces koj ti treba pa mozemo tu da napravimo tabele.
Ako je samo vezba od oba primera sta smo stavili sa ZXZ ima sta da naucis.
Ovo sta trazis mozes pogledati pod nazivom Crosstab query ili kod MSSql to se zove PIVOT queri. |
Avko |
30.08.2016 07:37 |
Predmet:Re: izracun sati za pon-pet sub i ned
hvala momci
datumi nisu bili dobri pa sam to preslozio rucno
evo ponovo attachment
PreuzmiIzvorni kôd (Text):SELECT COUNT(Datum) as UkupnoDana,
(SELECT COUNT(DATE_FORMAT(datum,'%a'))as d FROM `zaposlenik` WHERE DATE_FORMAT(datum,'%a') ="Sat")as Subota,
(SELECT COUNT(DATE_FORMAT(datum,'%a'))as d FROM `zaposlenik` WHERE DATE_FORMAT(datum,'%a') ="Sun")as Nedelja,
(SELECT COUNT(DATE_FORMAT(datum,'%a'))as d FROM `zaposlenik` WHERE DATE_FORMAT(datum,'%a') IN ('Mon','Tue','Wed','Thu','Fri'))as RadniDan
FROM `zaposlenik`
a gdje cu staviti AND MONTH(datum)=7 /za sedmi mjesec |
Prilozi: zaposlenik.sql.zip (Velicina datoteke:791 Bajt)
|
zxz |
30.08.2016 07:47 |
Predmet:Re: izracun sati za pon-pet sub i ned
Jel mislis na uslov za sedmi mjesec? |
zxz |
30.08.2016 09:24 |
Predmet:Re: izracun sati za pon-pet sub i ned
Mozda je i ovaj nacin interesantan.
PreuzmiIzvorni kôd (Text):SELECT If(DATE_FORMAT(Datum,'%w') Between 2 And 6,'RadniDan',DATE_FORMAT(Datum,'%a')) AS Dan, Count(DATE_FORMAT(Datum,'%a')) AS Ukupno
FROM zaposlenik
GROUP BY If(DATE_FORMAT(Datum,'%w') Between 2 And 6,'RadniDan',DATE_FORMAT(Datum,'%a'))
|
Gjoreski |
30.08.2016 11:18 |
Predmet:Re: izracun sati za pon-pet sub i ned
Ja ne mogu razumeti sta oce Avko da uradi ? |