MySQL-এ SUM() এর ভিতরে IF() বা CASE WHEN ব্যবহার করে শর্তসাপেক্ষে যোগফল বের করা যায়। উদাহরণস্বরূপ, 'Online' ও 'Offline' পেমেন্ট মোডের আলাদা আলাদা টোটাল বের করা।
সিনট্যাক্স
SELECT SUM(IF(`condition`, `value_if_true`, `value_if_false`)) AS `alias` FROM `table`;
উদাহরণ: টেবিল ও ডেটা
CREATE TABLE `SumWithIfCondition` (
`ModeOfPayment` VARCHAR(100),
`Amount` INT
);
INSERT INTO `SumWithIfCondition` VALUES
('Offline', 10), ('Online', 100),
('Offline', 20), ('Online', 200),
('Offline', 30), ('Online', 300);
কেস ১: Online পেমেন্টের টোটাল
SELECT SUM(IF(`ModeOfPayment` = 'Online', `Amount`, 0)) AS `TotalAmount`
FROM `SumWithIfCondition`;
ফলাফল: 600
কেস ২: Offline পেমেন্টের টোটাল
SELECT SUM(IF(`ModeOfPayment` = 'Offline', `Amount`, 0)) AS `TotalAmount`
FROM `SumWithIfCondition`;
ফলাফল: 60
বিকল্প: CASE WHEN ব্যবহার
SELECT
SUM(CASE WHEN `ModeOfPayment` = 'Online' THEN `Amount` ELSE 0 END) AS `OnlineTotal`,
SUM(CASE WHEN `ModeOfPayment` = 'Offline' THEN `Amount` ELSE 0 END) AS `OfflineTotal`
FROM `SumWithIfCondition`;
CASE WHEN একাধিক শর্তের জন্য আরও পঠনীয় ও স্ট্যান্ডার্ড।