我正在尝试编写一个脚本,该脚本将返回每个公司和总计的chk_amount总计。我遇到的问题是,如果支票是无效的,那么将其作为信用量返还,如果没有按原样返还。 chk_amount中的所有值都是正数。SQL:根据另一列中的值将金额转换并计算为负值
我得到一个错误,即void在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。有什么建议么?我希望输出的是company_name和金额。
这是代码;
SELECT company_name = CASE GROUPING(company_name) WHEN 1 THEN 'Total' ELSE company_name END,
CASE WHEN void = 'Y'
THEN FORMAT(sum(chk_amount * (-1)), 'C', 'en-us')
ELSE FORMAT(sum(chk_amount), 'C', 'en-us')
END AS amount
from payments
INNER JOIN company_list on payments.company_no = company_list.company_id
where CONVERT(varchar(10),date_last_modified,101) = '1/13/2016'
Group by ROLLUP(company_name)
预先感谢您!
你的CASE语句需要去的总和,而不是其他的方式中。 – Rabbit