2016-05-31 121 views
1

我有一個查詢,訂單由DeliveryName集團通過SQL爲

SELECT ID, CreatedAt, Identifier, Name, DeliveryName, RoundedPriceSum 
FROM StarOrder 
WHERE 
    SiteID = 1 AND --StarSite.ID 1= SE, 2 = NO 
    ShippingTypeID = 4 -- StarShippingType.ID 4 = STORE_PICKUP SE, 10 = STORE_PICKUP NO 
    and CreatedAt between '2015/01/11' and '2016/05/30' 
Order BY DeliveryName DESC 

我想組讓每個交貨名稱具有行的總數,但沒有運氣。任何幫助都會很棒。

+0

一些樣品表數據和預期的結果,都會更清晰! – jarlh

+1

請參閱[W3Schools SQL Group by](http://www.w3schools.com/sql/sql_groupby.asp)以獲取更多詳細信息 – Spidey

回答

2

分組的行的你是選擇所有列,包括ID(具有最低的粒度或詳細的數據)的數量,那麼你怎麼能得到的分組數據。你也沒有使用group by子句。 您需要選擇分組列和彙總數據,如sum()或avg()count()等來實現此目的。

SELECT DeliveryName, count(*) 
FROM StarOrder 
WHERE SiteID = 1 
AND ShippingTypeID = 4 
and CreatedAt between '2015/01/11' and '2016/05/30' 
group by DeliveryName 
Order BY DeliveryName DESC 

例如,如果你想通過班集體的學生,你會選擇號學生的。但是,如果您選擇學生的名字那麼你會得到每個學生的排。

+0

OP不希望總和RoundedPriceSum,_「試圖組以便每個交貨名稱具有總行數「_ – Spidey

+0

已編輯的解決方案...... – RanchiRhino

0

您可以通過獲得這種DeliveryNAme方式

SELECT DeliveryName, count(*) 
FROM StarOrder 
WHERE SiteID = 1 
AND ShippingTypeID = 4 
and CreatedAt between '2015/01/11' and '2016/05/30' 
group by DeliveryName  
Order BY DeliveryName DESC 
+0

我收到此錯誤消息156,級別15,狀態1,行7 關鍵字附近的語法不正確'組'。 – Deano

+0

我已經更新了答案(按位置錯誤的順序) – scaisEdge

+0

這沒關係我修好了。感謝你的回答!只需要稍微調整 – Deano