2013-10-16 112 views
0

我已審查在論壇上各種「條件求和的問題並沒有完全匹配我想要做的事:條件求和基於計數

在數據庫中,有DateStore#Item#,和%Total Sales。在某些情況下,%Total Sales可能會給出同一日期的同一商品#的多個值。 (出於某種原因,這是一種很少發生的有效業務場景,但它發生了。)

僅在這種情況下,要求將這兩個值合計爲一行。因此,如果項目#123有一行值爲.05%,另一行值爲.08%,則需要將這兩個值合計爲一行,對於%Total爲.13%的項目#123。只有當一個項目分配了一個以上的百分比時,這些百分比應該加總。否則,如果一個項目#只分配一個百分比值,我們只想看到該值。

我不知道如何做到這一點。基本上,我想執行的邏輯,將工作是這樣的:

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# 

但是,我不知道如何製作它,這樣我沒有得到一個語法錯誤(這個查詢產生錯誤)。

任何幫助,將不勝感激。

謝謝!

+2

爲什麼它需要有條件?如果按照所有字段進行分組,那麼您應該只是總計具有多行的值 – codemonkeh

+0

totalSales字段的數據類型是什麼? –

回答

0

如果您是Date, Store#, Item#組合,則返回多行的唯一值是同一日期同一項目的總銷售額的多個值。

因此,分組項目應該足夠。

SELECT Date, Store#, Item#, Sum(%Total Sales) 
FROM (some tables and joins) 
GROUP BY Date, Store#, Item# 
0

爲什麼不進行更新而不是在表中輸入新值。 而不是在插入後操作數據。

我相信這是一個更好的主意,您可以檢查當前的日期並更新當時的百分比。

難道不可能嗎?