假設我有一個公共車庫應用程序,其中包含一個數據表,該數據表示可以在車庫,車庫外或店內進行維護。它看起來像這樣:獲取記錄狀態的SQL服務器2008的歷史
+-----------------------+-----+-----+
|Date |BusId|State|
+-----------------------+-----+-----+
|2013-09-12 15:02:41,844|1 |IN |
+-----------------------+-----+-----+
|2013-09-12 15:02:41,844|2 |IN |
+-----------------------+-----+-----+
|2013-09-12 15:02:41,844|3 |OUT |
+-----------------------+-----+-----+
|2013-09-12 15:02:41,844|4 |OUT |
+-----------------------+-----+-----+
|2013-09-12 15:02:41,844|5 |OUT |
+-----------------------+-----+-----+
|2013-09-13 15:02:41,844|1 |OUT |
+-----------------------+-----+-----+
|2013-09-14 15:02:41,844|1 |IN |
+-----------------------+-----+-----+
|2013-09-15 15:02:41,844|1 |OUT |
+-----------------------+-----+-----+
|2013-09-15 15:02:41,844|2 |OUT |
+-----------------------+-----+-----+
現在我想打一個愉快的一天按一天(或小時按小時等)數據集給我多少總線的概述,其中在車庫的多少是哪裏出的。
+-------------------+-----+------------+
|Date |State|Count(buses)|
+-------------------+-----+------------+
|2013-09-12 16:00:00|IN |2 |
+-------------------+-----+------------+
|2013-09-12 16:00:00|OUT |3 |
+-------------------+-----+------------+
|2013-09-13 16:00:00|IN |1 |
+-------------------+-----+------------+
|2013-09-13 16:00:00|OUT |4 |
+-------------------+-----+------------+
|2013-09-14 16:00:00|IN |2 |
+-------------------+-----+------------+
|2013-09-14 16:00:00|OUT |3 |
+-------------------+-----+------------+
|2013-09-15 16:00:00|IN |0 |
+-------------------+-----+------------+
|2013-09-15 16:00:00|OUT |5 |
+-------------------+-----+------------+
如何(不需要在代碼中解釋)我會使用TSQL去做這些事情? 我有一個要求,那就是我不能在我的聲明中使用變量聲明,因爲我將它作爲視圖。
我問了一個非常similar question,但我覺得那個人過於寬容,並不像這個人一般。
事端,如:'選擇日期,狀態,從表組COUNT(*)的日子(日期),state' – Melon
即查詢錯過兩樣東西:它不會給我日期,當沒有巴士在哪裏改變狀態,並且沒有考慮在特定日子沒有改變狀態的巴士。再次查看所需的結果集。 – Fontanka16
這只是一個提示。 (這是在這裏,而不是在答案) – Melon