Я пробовал многочисленные методы для перевода NULL в число 0 при выборе:
SELECT
ss.id AS staff_id,
u.realname AS realname,
ss.amount AS salary_amount,
IF(s.paid_amount IS NOT NULL, s.paid_amount,0.00) AS paid_amount,
(ss.amount-s.paid_amount)
FROM f_salary_staff ss
JOIN user u ON (u.id=ss.user_id)
LEFT JOIN (
SELECT staff_id,
month_year,
SUM(amount) AS paid_amount
FROM f_salary
WHERE month_year='2020-02-29'
GROUP BY staff_id,month_year
) s ON (ss.id=s.staff_id)
Я использовал IFNULL, но это вовсе не превращает 0 в любое число c выбор даже не перечислил те со значениями NULL. Есть ли способ вообще преобразовать значения NULL в числовые при выделении и сравнить их численно с другими столбцами?
Кстати ... ниже приведены операторы создания таблиц для обеих таблиц.
f_salary_staff
CREATE TABLE `f_salary_staff` ( `id` int(11) NOT NULL AUTO_INCREMENT, `store_id` int(11) NOT NULL, `user_id` int(11) NOT NULL, `date_enter` date DEFAULT NULL, `amount` decimal(12,2) DEFAULT NULL, `updated` datetime DEFAULT NULL, `updated_by` int(11) DEFAULT NULL, `created` datetime DEFAULT NULL, `created_by` int(11) DEFAULT NULL, `last_activated` datetime DEFAULT NULL, `last_inactivated` datetime DEFAULT NULL, `status` varchar(16) DEFAULT NULL, PRIMARY KEY (`id`), KEY `store_id` (`store_id`), KEY `user_id` (`user_id`), CONSTRAINT `f_salary_staff_ibfk_1` FOREIGN KEY (`store_id`) REFERENCES `store` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `f_salary_staff_ibfk_2` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE ON UPDATE CASCADE )
затем f_salary
CREATE TABLE `f_salary` ( `id` int(11) NOT NULL AUTO_INCREMENT, `staff_id` int(11) NOT NULL, `amount` decimal(12,2) DEFAULT NULL, `note` tinytext, `ref_date` date DEFAULT NULL, `month_year` date DEFAULT NULL, `created` datetime DEFAULT NULL, `created_by` int(11) DEFAULT NULL, `updated` datetime DEFAULT NULL, `updated_by` int(11) DEFAULT NULL, `approved` datetime DEFAULT NULL, `approved_by` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `staff_id` (`staff_id`), CONSTRAINT `f_salary_ibfk_1` FOREIGN KEY (`staff_id`) REFERENCES `f_salary_staff` (`id`) ON DELETE CASCADE ON UPDATE CASCADE )
надеюсь, это поможет тем, кому необходимо понять структуру таблицы