Sql 基于计数的条件和
我已经在论坛上回顾了各种“条件和”问题,没有一个与我想做的完全匹配: 数据库中有Sql 基于计数的条件和,sql,sql-server,Sql,Sql Server,我已经在论坛上回顾了各种“条件和”问题,没有一个与我想做的完全匹配: 数据库中有日期、商店#、商品#和%总销售额。在某些情况下,同一日期的同一商品可能会被赋予%总销售额的多个值。(出于某种原因,这是一个有效的业务场景,很少发生,但确实发生了。) 仅在这种情况下,要求将两个值相加成一行。因此,如果第123项有一行的值为.05%,另一行的值为.08%,我需要将这两个值相加为第123项的一行,该行的总值为.13%。只有当项目分配了多个百分比时,才应将这些百分比相加。否则,如果一个项目#只分配了一个百分
日期
、商店#
、商品#
和%总销售额
。在某些情况下,同一日期的同一商品可能会被赋予%总销售额的多个值。(出于某种原因,这是一个有效的业务场景,很少发生,但确实发生了。)
仅在这种情况下,要求将两个值相加成一行。因此,如果第123项有一行的值为.05%,另一行的值为.08%,我需要将这两个值相加为第123项的一行,该行的总值为.13%。只有当项目分配了多个百分比时,才应将这些百分比相加。否则,如果一个项目#只分配了一个百分比值,我们只希望看到该值
我不知道怎么做。基本上,我想实现这样的逻辑:
SELECT Date, Store#, Item#,
CASE WHEN Count(%Total Sales) >1 THEN Sum(%Total Sales)
ELSE %Total Sales
END
FROM (some tables and joins)
GROUP BY Date, Store#, Item#
但是,我不知道如何处理它,这样就不会出现语法错误(这个查询会产生错误)
任何帮助都将不胜感激
谢谢大家! 如果您按日期、商店#、商品#分组
返回多行的唯一值是那些具有相同商品在同一日期的总销售额的多个值的值
因此,对项目进行分组就足够了
SELECT Date, Store#, Item#, Sum(%Total Sales)
FROM (some tables and joins)
GROUP BY Date, Store#, Item#
为什么不进行更新而不是在表中输入新值呢。
而不是在插入后操纵数据
我相信这是一个更好的主意,你可以检查现有的日期,并在那一刻自己更新百分比
不可能吗?为什么需要有条件?如果按所有字段分组,则只应对具有多行的值求和totalSales字段的数据类型是什么?