Jeg sidder og skal lave en sortering i MySQL, som driller mig rimeligt meget nu.
Desværre kan jeg ikke vise systemet, da det kører på en intern server.
Men jeg må prøve at forklare problemstillingen som godt som muligt.
Vi har en sag med 3 forskellige deadlines undervejs. Disse er datoer og kan enten være NULL eller udfyldt. Derudover har vi 3 datofelter til samme deadlines, som viser hvornår punktet blev udført. Disse kan igen også være NULL eller udfyldt.
Men for letheds skyld kan jeg godt nøjes med en virker sortering på bare en deadline, de er næsten ens, så jeg kan selv ændre de andre.
Nu skal jeg så have lavet en sortering her der gør følgende:
Øverst skal de sager hvor kun deadline er udfyldt være, og det skal være stigende, så dem som er tættest eller har overskredet deadline ligger øverst. Nederst selvfølgelig dem hvor der er meget god tid til deadline.
Derefter skal jg have de sager hvor både deadline og udførelsen af denne er udfyldt. Igen stigende så dem tættest/overskredet på deadline ligger øverst.
Til sidste de sager, som endnu ikke har fået udfyldt en deadline.
Felterne har følgende navne:
deadline -> o5.r530b
deadline udført -> o5.r542a
Jeg er selv kommet frem til nedenstående if-sætning, men den sortere således, at sager under deadline, kommer før sager hvor deadline er udført, men ellers virker den.
IF(((TO_DAYS(o5.r530b) - TO_DAYS(o5.r542a)) IS NOT NULL || (TO_DAYS( o5.r530b ) - TO_DAYS(NOW())) IS NULL),1,0), date530b ASC
|