Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在免费产品上使用sql case计算金额_Sql_Sql Server_Etl_Business Intelligence_Msbi - Fatal编程技术网

在免费产品上使用sql case计算金额

在免费产品上使用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

我有一个包含(产品代码、数量、单价…)的销售表,我想计算每个产品代码的金额,但我有一些免费产品,我想金额为0

我如何使用SQL实现它

这正是我所期待的

案例
当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)

不需要条件逻辑。

向我们展示一些示例表数据和预期结果-所有内容都是格式化文本,而不是图像。你是怎么做的?你能告诉我们你的努力吗?如果产品是“免费”的,单价是多少?给我们看一些样本表数据和预期结果-全部是格式化文本,而不是图像。你是怎么做的?你能告诉我们你的努力吗?如果产品是免费的,单价是多少?