Som alle andre har fremhævet, så er det højst sandsynligt ikke muligt på en smart måde. Og som de andre undrer jeg mig også over, at du vil have det i ren sql?? Husk nu på, MySQL bare er en database til opbevaring af data, og ikke til bearbejdelse. Vil dog sige, at det nok kan lade sig gøre, men så skal du bruge nogle stored procedures. Men det er så besværligt og ærlig talt ikke særligt logisk, i forhold til
INSERT INTO bla(salary,date) VALUES($holiday->check($salary),'2011-01-01')
Jeg er ung iværksætter, som til dagligt sælger vinterdæk over nettet ;)
Præcis - du behøver ikke nogen programmering for at lave det. Jeg har tit lavet den slags beregninger og har altid blot kørt sådanne kørsler på databasen. Godt nok primært MSSQL, men jeg har da også sat det op på MySQL.
Du laver en tabel over helligdage, vi kalder den holidays, og sørger for at alle de helligdage du ønsker at tage med fremgår. Du kan evt. finde data på nettet, som en anden påpeger. Du kan evt. lave en kolonne hvor du angiver hvilket land de gælder for, eller en m:n relation hvis du vil være rigtig fancy. Derefter kan du skrive en query ala:
UPDATE workday w SET w.salary = w.salary*1.2 WHERE w.workdate IN (SELECT holidaydate FROM holidays);
evt. med land:
UPDATE workday w SET w.salary = w.salary*1.2 WHERE w.workdate IN (SELECT h.holidaydate FROM holidays h WHERE h.country_iso='dk');
DISCLAIMER!
Query'en rystet ud af ærmet og skal lige tjekkes igennem... Brug den ikke ukritisk, men se det som inspirartion til at løse dit problem. Håber at det hjælper dig. :-)
MIT INDLÆG OVENFOR... Alexander har vidst været på fra min PC :-)
Lige en hurtig kommentar... Jeg ville til enhver tid sørge for at gemme "ferie-tillægs-honoraret" seperat, så du stadig har det originale honorar at tjekke ud fra. Måske desuden en ekstra kolonne bool/tinyint til at markere om det er en helligdag eller ej.
Boldrer mig med de kreative wunderkids i Signifly - et Digitalt Bureau i København. Altid en god Amino-pris.
Jeg vil i første omgang nøjes med et program der holder til 2038. Jeg kan jo evt. skrive en todo ind i min kalender omkring år 2036/2037 på at finde en ny løsning der.
Jeg vil i første omgang nøjes med et program der holder til 2038. Jeg kan jo evt. skrive en todo ind i min kalender omkring år 2036/2037 på at finde en ny løsning der.