Какво ще кажете да използвате IN вместо това
SELECT `salesorder`,
`masterproduct`,
`family`,
`birthstamp`,
`duedate`,
COUNT( * ) AS `total`
FROM `report`
WHERE `birthstamp` BETWEEN '$startDT' AND '$endDT'
AND `family` IN ('Software_1Y','XI_1Y','PI_1Y')
GROUP BY `salesorder`,
`masterproduct`,
`family`,
`duedate`;
Причината, поради която не се връщат стойности, е този раздел
AND `family` = 'Software_1Y'
AND `family = 'XI_1Y'
AND `family` = 'PI_1Y'
family
не може да бъде всичките 3 стойности наведнъж, но може да е 1 от 3-те стойности.
Ето защо бихте използвали IN.
Друг начин да го погледнете е да използвате ИЛИ, но това става много дълго.