0

我的表中有三列,Contract_number,RevenueCust_name。我想SUM(Revenue),同時按Contract_number分組,以獲得該合同的總收入。在此旁邊,我想顯示Cust_name以顯示哪個客戶在該合同下。SQL Server:聚合時,爲特定列選擇單個行的值

問題是在任何給定合同下有多個Cust_name值。合同下的Cust_name值都非常相似,我不在乎它們中的哪一個被使用,我只想顯示其中的一個。

如果我使用類似MIN(Cust_name)的東西,我會丟失數據,如果我的確做了GROUP BY Cust_name,那麼這些值將被拆分成多行。

有沒有辦法爲每個結果添加一個Cust_name值,同時保持Contract_numberRevenue聚合函數相同?

+0

使用MAX(CUST_NAME) – Dimitri

+0

更像三列,而行 – maSTAShuFu

+1

我想你最好**正常化**你的餐桌,爲什麼你有一個單一的Contract_Number有很多類似的Cust_Names? –

回答

1

使用MIN(CUST_NAME)或MAX(CUST_NAME)用SUM(收入),那麼GROUP BY Contract_number一起

SELECT Contract_number, 
     SUM(Revenue), 
     MIN(Cust_Name) -- or MAX(Cust_Name) 
    FROM table 
GROUP BY Contract_number 
+1

謝謝,這工作。我的查詢實際上也包含一個子查詢。當我在子查詢中使用MIN時,我失去了結果,但是當我只將主查詢用於完美時。謝謝你費迪南德! – esafresa

相關問題