我無法圍繞這個包裹我的頭。我有一個客戶 - 員工溝通系統。在管理員端,我試圖檢索用戶列表,其中包含該用戶的總消息數,全部新消息,最後消息日期和最後消息。SQL SELECT頂行和聚合計數
邏輯的位:0
- 發送者或接收者的值,意味着工作人員發送或接收它。
- X的發送者或接收者值,表示接收或發送它的ID值爲X的用戶。
樣本數據:
ID |date |new |sender |receiver |message
----+-----------------------+-------+-------+-----------+------------
1 |2013-12-22 08:19:12 |1 |2 |0 |Hello
2 |2013-12-22 08:23:19 |0 |0 |2 |Hello There
3 |2013-12-22 08:23:19 |0 |0 |4 |Hello There
4 |2013-12-22 10:09:44 |1 |2 |0 |The latest message
所需的輸出:
user ID |total_messages |total_new |latest_date |latest_messsage
------------------------------------------------------------------------------
2 |3 |2 |2013-12-22 10:09:44 |The latest message
4 |1 |0 |2013-12-22 08:23:19 |Hello There
我使用SQL Server 2008
儘量避免使用幻數,比如'0'了特殊的含義。如果沒有用戶發送消息,則該值應該爲NULL,而不是用戶指示缺少。這也使得篩選和加入更容易,並且不會破壞聲明性參照完整性。 –