我有一個表,其中某些日期放置了一定數量的條目。下面是表結構:在SQL Server中按月份名稱自定義排序
ID EntryName Entries DateOfEntry
1 A 20 2016-01-17
2 B 22 2016-01-29
3 C 23 2016-02-17
4 D 19 2016-02-17
5 E 29 2016-03-17
6 F 30 2016-03-17
7 G 43 2016-04-17
8 H 10 2016-04-17
9 I 5 2016-05-17
10 J 120 2016-05-17
11 K 220 2016-06-17
12 L 210 2016-06-17
13 M 10 2016-07-17
14 N 20 2016-07-17
15 O 15 2016-08-17
16 P 17 2016-08-17
17 Q 19 2016-09-17
18 R 23 2016-09-17
19 S 43 2016-10-17
20 T 56 2016-10-17
21 U 65 2016-11-17
22 V 78 2016-11-17
23 W 12 2016-12-17
24 X 23 2016-12-17
25 Y 43 2016-02-17
26 Z 67 2016-03-17
27 AA 35 2015-01-17
28 AB 23 2015-01-29
29 AC 43 2015-02-17
30 AD 35 2015-02-17
31 AE 45 2015-03-17
32 AF 23 2015-03-17
33 AG 43 2015-04-17
34 AH 19 2015-04-17
35 AI 21 2015-05-17
36 AJ 13 2015-05-17
37 AK 22 2015-06-17
38 AL 45 2015-06-17
39 AM 66 2015-07-17
40 AN 77 2015-07-17
41 AO 89 2015-08-17
42 AP 127 2015-08-17
43 AQ 19 2015-09-17
44 AR 223 2015-09-17
45 AS 143 2015-10-17
46 AT 36 2015-10-17
47 AU 45 2015-11-17
48 AV 28 2015-11-17
49 AW 72 2015-12-17
50 AX 24 2015-12-17
51 AY 46 2015-02-17
52 AZ 62 2015-03-17
列EntryName
是條目標識符,列Entries
具有用於在列DateOfEntry
指定的日期的條目的總數。
我想制定一個查詢,其中的條目總數顯示在月份的基礎上。我目前有這樣的查詢:
SELECT DateName(MONTH, e.DateOfEntry) AS MonthOfEntry,
MONTH(e.DateOfEntry) AS MonthNumber,
SUM(e.Entries) AS TotalEntries
FROM #entry e
GROUP BY MONTH(e.DateOfEntry), DateName(MONTH,e.DateOfEntry)
ORDER BY MONTH(e.DateOfEntry) ASC
它工作正常,只要顯示結果有關。然而,我的問題是,我需要按月份對結果進行排序,其中起始月份將是動態的,即由參數(由用戶提供的)產生。
這意味着,如果用戶選擇的2015年5月的結果應進行排序,從2015年5至4月2016年從2015年10至9月2016年同樣,如果用戶選擇2015年10月,結果將顯示
我該如何處理ORDER BY
條款中的條件?
你不會......你還需要一個where子句'如果DateofEntry日期之間,並且每年以通過DateofEntry Asc' dateprovided + 1,因爲它似乎像你只需要1年的記錄....使用之間。 – xQbert
@xQbert這隻會刪除邊界外的記錄。這不是我的問題。我可以輕鬆做到這一點。它關於之後的分類。 –
爲什麼不按年排列(E.DateofEntry)asc,Month(E.DateofEntry)Asc'工作? – xQbert