2014-06-06 42 views
0

一位新手到SQL的位,但我正在讓我的方式非常好。但是,我的問題是以特定的方式排列事物。說,例如,我有如下表:特定的SQL排序

DATE RANGE  NAME ORDER COUNT 
5/5/14 - 5/6/14 Bob  Food  3 
5/5/14 - 5/6/14 Jim  Drink 2 
5/4/14 - 5/5/14 Bob  Food  3 

我想在一個特定的方式來訂購這些:

DATE RANGE  NAME ORDER COUNT 
5/4/14 - 5/5/14 Bob  Food  3 
5/5/14 - 5/6/14 Bob  Food  2 
5/5/14 - 5/6/14 Jim  Drink 2 

要它是由其中名稱和順序是同階,計數不一定必須相同,並且都是按日期範圍排序的。我已經嘗試了ORDER BY的各種排列,但沒有運氣,但在我看來,這應該是一個非常簡單的查詢。有人有建議嗎?

+2

向我們展示select;但它應該是'ORDER BY'日期範圍','名稱','訂單'之後的where子句注意:ORDER和名稱在某些情況下,是一個保留字,所以它需要包裹在適當的逃生字符[]爲SQL服務器'爲ORACLE&Mysql ...那麼什麼味道的DB引擎? – xQbert

+0

所以你希望它按'NAME'和'ORDER'分組,然後按'DATE RANGE'排序? – tsHunter

回答

1

Here is a sqlFiddle代碼。您應該GROUP BYNAME,ORDER,DATE RANGE, COUNT,然後ORDER BYDATE RANGE

+0

這種方式有'日期範圍'是最重要的。但是如果讓它們按'ORDER'分組更重要,那麼刪除'ORDER BY'子句並使用GROUP BY' – tsHunter

+0

[Here](http://sqlfiddle.com/#!3/1ada6/1)是替代小提琴。不同之處在於,如果鮑勃在5/4/14-5/5/14下訂購食品和飲料,然後在5/5/14-5/6/14上再次食品和飲料,我的答案中的原始小提琴將對按日期,所以5/4/14喝,5/4/14食物,然後5/5/14喝,然後5/5/14食物。這個小提琴會按順序排列,所以它會是5/4/14喝,然後是5/5/14喝,然後是5/4/14食物,然後是5/5/14食物。我不是100%確定你喜歡哪種方式,所以有兩種選擇。 – tsHunter