I need help!!


Ik heb de onderstaande query. Gaat al een half jaar goed, vanaf vandaag in ene niet meer...



$sql = "
SELECT SUM(uren.uren)
, AVG(tarieven_verkoop.verkoop_tarief) AS Tarief
, SUM((tarieven_verkoop.verkoop_tarief * IF(uren.datum IN(speciale_dagen.datum), 1.5,1)) * IF(DAYOFWEEK(uren.datum) = 1, uren.uren*1.5, IF(DAYOFWEEK(uren.datum) = 7, uren.uren*1.5, IF(uren.uren > 8,(uren.uren-8)*1.25+8,uren.uren)))) AS Bedrag
, users.achternaam
, tarieven_verkoop.sbe
, projecten.naam
, projecten.id
FROM users
, uren
, map_projecten
, projecten
, tarieven_verkoop
, speciale_dagen
WHERE
users.id = '" . $user_id . "'
AND users.status = 1
AND map_projecten.user_id = users.id
AND projecten.id = map_projecten.project_id
AND projecten.type_factuur = 3
AND uren.user_id = map_projecten.user_id
AND uren.project_id = map_projecten.project_id
AND tarieven_verkoop.project_id = map_projecten.project_id
AND tarieven_verkoop.user_id = map_projecten.user_id
AND tarieven_verkoop.start_datum <= uren.datum
AND tarieven_verkoop.eind_datum >= uren.datum
AND uren.datum BETWEEN '" . date_to_mysql($datum_start) . "' AND '" . date_to_mysql($datum_eind) . "'
AND uren.status != 0
GROUP BY map_projecten.project_id
, tarieven_verkoop.sbe";


Het verhaal er achter is een urensysteem en deze query maakt een aantal kosten inzichtelijk.

Normaal gesproken gaf hij alles goed weer, maar vanaf vandaag niet. Er staat namelijk in de tabel 'speciale_dagen' 2 dagen. Voorheen was dit 1 dag. En nu er 2 dagen in staan, verdubbeld hij het aantal uren!!!

Enig idee hoe ik dit op kan lossen??

* ik denk dus dat de query hier nat gaat:
IF(uren.datum IN(speciale_dagen.datum), 1.5,1)
Probleem opgelost.

* Ik heb de tabel speciale_dagen in een left outer join gezet. Gekoppeld met de datum.

Reageren