這是在Microsoft SQL Server 2008 R2中完成的。具有唯一值的SQL Server COUNT查詢
我將用一個例子表開始了。
Organization | MoneyAmount | MoneyAmountAvg
ISD | 500 |
ISD | 500 |
ISD | 500 |
QWE | 250 |
ISD | 500 |
QWE | 250 |
OLP | 800 |
ISD | 500 |
我需要MoneyAmountAvg列有MoneyAmount/(# of times that organization shows up
所以例如價值,爲ISD的MoneyAmountAvg列行將有的值。
QWE將有在MoneyAmountAvg柱和OLP每排將有一個值,因爲它的存在只有一次。
這僅是一個示例表。實際的表格要大得多,並且有更多的組織,但它具有相同的標準。一些組織有多行,而其他組織只有一次。
我只需要它來計算多少次,當我使用的更新語句該組織的MoneyAmountAvg列各機構列出了一個辦法。對每個組織進行硬編碼絕對不是一種選擇,因爲它們可以在任何時候改變。
任何幫助表示讚賞。
但是,SELECT語句有效,我需要這個來使用UPDATE語句。我知道你必須使用CTE,但我遇到了一些麻煩。 – Mo2 2013-03-05 20:28:05
欣賞幫助。最後一個問題。我在那裏有另一個名爲LoadDt的列,它基本上反映了插入行的日期。我希望它只更新實際的表,其中:'LoadDt =(SELECT MAX(LoadDt)From [TableName])' 當我在FROM語句之後或SET語句之後添加where子句時,它會告訴我203行受到影響,但所有具有最新LoadDt的行仍不受影響。 – Mo2 2013-03-05 21:09:53
NVM,算出來。您忘記在您的UPDATE語句中的SELECT語句中選擇MoneyAmountAvg列,並且意外更新了MoneyAmount列而不注意。 – Mo2 2013-03-05 21:18:09