2015-06-29 3 views
0

У меня есть код sql, как это, когда я выполняю код с GROUP BY, он просто показывает номер записи один, и он не использует функцию ABS. Кто-нибудь может мне помочь?Mysql Group By and ABS function Stack

SELECT *, `tblLifeAgency`.`AgencyName`, `mlp`.`Basic40`, `mlp`.`ADB40`, `mlp`.`CiAccel40`, `mlp`.`Basic50`, `mlp`.`ADB50`, `mlp`.`CiAccel50`, `mlp`.`Basic60`, `mlp`.`ADB60`, `mlp`.`CiAccel60` 
FROM (`tblPackage`) 
INNER JOIN `tblMatrixLifePackage` mlp ON `mlp`.`PackageID` = `tblPackage`.`PackageID` 
INNER JOIN `tblCompany` ON `tblPackage`.`CompanyID` = `tblCompany`.`CompanyID` 
INNER JOIN `tblLifeAgency` ON `tblLifeAgency`.`CompanyID` = `tblCompany`.`CompanyID` 
AND `tblPackage`.`IsActive` = '1' 
WHERE `tblPackage`.`PackageType` = '2' 
GROUP BY tblPackage.CompanyID 
ORDER BY abs(tblPackage.TotalPremi - 250000) 
+0

Каковы ваши ожидаемые входы и выходы. «GROUP BY» по определению вернет одну запись для каждой группы. –

ответ

0

GROUP BY группирует ваши записи. Если у вас есть значения записи, вы должны решить, какой результат показать в виде сводки для строки. Например, вы можете взять все значения в одной группе как положительные (ABS) и суммировать их (SUM). Затем попробуйте преобразовать этот шаблон в ваш футляр (чтобы понять лучше):

SELECT 
    `group`, 
    ABS(
    SUM(`value`)) AS `sum` 
FROM my_table 
GROUP BY `group`