2015-10-20 28 views
0

我有一個包含以下字段:SQL - 分組一些行作爲單行而不是其他

位置,WeekEnded和SalesOrder

我想通過位置來概括,但有幾個地方是隻有少量的訂單,我想集體作爲一個單一的位置,我似乎無法得到正確的代碼。

CURENT結果

  • 位置A 55
  • 位置乙66
  • 位置的C 1
  • 等11

我想什麼是

  • 位置A 55
  • B位置66
  • 位置C-Z 12

代碼此刻正在

SELECT 
     Location, 
     WeekEnd, 
     sum(SOCount) as 'Sales Orders' 

FROM SalesOrderHist 
GROUP BY 
     Location, 
     WeekEnd 

任何人都可以幫助我將永遠感激。在組

回答

0

使用CASE BY子句

+0

這並不提供答案的問題。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 –

+0

非常感謝Adish,但不幸的是C到Z的位置仍然出現在不同的行上。我試圖達到的目的是讓他們出現在一行改名爲C-Z位置。 – Murrayk

+0

問題已解決。我用case語句創建了一個子查詢。 – Murrayk

0

最終代碼,在這種情況下,可以幫助別人。代碼包含了更多,所以我縮小了它的範圍,只包括重要的內容。我對SQL有點新,所以可能有更有效的方法,但這對我來說很有用。

SELECT 
 
lname as Location, 
 
WeekStart as 'Week Start', 
 
SOCount 
 

 
FROM 
 
(
 
SELECT 
 
    WeekStart, 
 
    SOCount, 
 
    CASE 
 
     when cast(lname as varchar(40)) in ('Location A') then 'Location A' 
 
     when cast(lname as varchar(40)) in ('Location B') then 'Location B' 
 
     when cast(lname as varchar(40)) = 'Location C' then 'Location C' 
 
     when cast(lname as varchar(40)) not in ('Location A','Location B','Location C') then 'OTHER' 
 
     else cast(lname as varchar(40)) 
 
     end as lname 
 
    FROM 
 
     BDO_salesorderhist_pickeddate2 
 
    GROUP BY 
 
     lname 
 
) d 
 

 
GROUP BY 
 
lname

相關問題