0

我已经查看了论坛中的各种“条件和”问题,但没有一个完全符合我想要做的:

在数据库中,有DateStore#Item#%Total Sales。在某些情况下,同一日期的同一项目# 可能会被赋予多个值%Total Sales。(出于某种原因,这是一个很少发生的有效业务场景,但它确实发生了。)

仅在这种情况下,要求是将两个值相加成一行。因此,如果 Item#123 有一行的值为 0.05%,另一行的值为 0.08%,我需要将这两个值相加为 Item #123 的一行,其 a%Total为 0.13%。只有当一个项目分配了一个以上的百分比时,才应将这些百分比相加。否则,如果 item# 仅分配了一个百分比值,我们只想查看该值。

我无法弄清楚如何做到这一点。基本上,我想实现这样工作的逻辑:

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#

但是,我不确定如何制作它,以免出现语法错误(此查询会产生错误)。

任何帮助,将不胜感激。

谢谢!

4

2 回答 2

0

假设您按Date, Store#, Item#返回多行的唯一值分组是那些在同一日期对同一项目的总销售额具有多个值的值。

因此,对项目进行分组就足够了。

SELECT Date, Store#, Item#, Sum(%Total Sales) 
FROM (some tables and joins)
GROUP BY Date, Store#, Item#
于 2013-10-16T03:22:51.350 回答
0

为什么不进行更新而不是在表中输入新值。而不是在插入后操作数据。

我相信这是一个更好的主意,您可以检查现有日期并更新当时的百分比。

不可能吗?

于 2013-10-16T04:48:14.440 回答