在免费产品上使用sql case计算金额
我有一个包含(产品代码、数量、单价…)的销售表,我想计算每个产品代码的金额,但我有一些免费产品,我想金额为0 我如何使用SQL实现它 这正是我所期待的在免费产品上使用sql case计算金额,sql,sql-server,etl,business-intelligence,msbi,Sql,Sql Server,Etl,Business Intelligence,Msbi,我有一个包含(产品代码、数量、单价…)的销售表,我想计算每个产品代码的金额,但我有一些免费产品,我想金额为0 我如何使用SQL实现它 这正是我所期待的 案例 当freegoodline=0时,则 金额=总和(B.QUANTITYB.UNITPRICEB.VAT1RATE)(按B.PRODUCT\u代码、B.sinvoice\u代码划分) 其他的 金额=0 结束 使用CASE表达式进行条件聚合: SELECT productcode, SUM(CASE WHEN productco
案例
当freegoodline=0时,则
金额=总和(B.QUANTITYB.UNITPRICEB.VAT1RATE)(按B.PRODUCT\u代码、B.sinvoice\u代码划分)
其他的
金额=0
结束
使用CASE
表达式进行条件聚合:
SELECT productcode,
SUM(CASE WHEN productcode = 'free' THEN 0 ELSE quatity * unitprice END) AS Amount
FROM sales s
GROUP BY productcode;
使用
CASE
表达式进行条件聚合:
SELECT productcode,
SUM(CASE WHEN productcode = 'free' THEN 0 ELSE quatity * unitprice END) AS Amount
FROM sales s
GROUP BY productcode;
通常,如果产品是免费的,那么单价将为零或
NULL
。如果是这种情况,您只需要:
sum(quantity * unitprice)
不需要条件逻辑。通常,如果产品是免费的,那么单价将为零或
NULL
。如果是这种情况,您只需要:
sum(quantity * unitprice)
不需要条件逻辑。向我们展示一些示例表数据和预期结果-所有内容都是格式化文本,而不是图像。你是怎么做的?你能告诉我们你的努力吗?如果产品是“免费”的,单价是多少?给我们看一些样本表数据和预期结果-全部是格式化文本,而不是图像。你是怎么做的?你能告诉我们你的努力吗?如果产品是免费的,单价是多少?