2014-03-06 48 views
0

我有一個數據庫手機,我想跟蹤的日期,其中有多少電話或多少短信是爲期1周例如SQL怎麼算

DATABASE:phone 

type | date/time 

calls   | 04/01/14 0800hrs 

sms   | 04/01/14 0850hrs 

sms   | 04/01/14 0900hrs 

calls   | 04/01/14 1230hrs 

sms   | 04/01/14 1250hrs 

calls   | 04/01/14 1300hrs 

sms   | 08/01/14 1301hrs 

calls   | 08/01/14 1330hrs 

我應該如何創建一張桌子和使用算什麼?它會顯示

-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ 

-no. of calls || no. of sms- 

-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ 

-4    || 4   - 

-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ 

我foget添加進來。讓我們說,我得到了用戶1,2和3 我要搜索用戶1做出了多少電話,多少短信,用戶2發出多少電話和多少短信等等。我該怎麼寫呢?

+1

它是SQL服務器? – Agilox

回答

0

如果執行SQL Server上查詢,後續的SQL應該工作:

SELECT [type], COUNT([type]) FROM your_table 
WHERE DATEPART(wk, your_table.[datetime]) = DATEPART(wk, GETDATE()) 
AND DATEPART(yy, your_table.[datetime]) = DATEPART(yy, GETDATE()) 
GROUP BY [type] 

更新:你沒有告訴用戶字段前面。但是,您可以修改其GROUP子句,以獲得新的預期結果如下:

SELECT [user_name], [type], COUNT([type]) FROM your_table 
WHERE DATEPART(wk, your_table.[datetime]) = DATEPART(wk, GETDATE()) 
AND DATEPART(yy, your_table.[datetime]) = DATEPART(yy, GETDATE()) 
GROUP BY [type], [user_name] 
+0

感謝它的工作。順便說一句,如果我有像用戶1,2,3的搜索功能,我只想看到像用戶1做多少短信或電話,用戶2做了多少短信或電話,我應該如何輸入檢查? – user3386794

+0

您之前沒有告訴用戶字段。但是,您可以修改其GROUP子句以獲得新的預期結果:GROUP BY [type],[user_name] – Agilox

0
SELECT type, COUNT(*) FROM phone where [date/time] between x and y group by type 
0

試試這個

SELECT SUM(CASE WHEN Type = 'calls' Then 1 Else 0 End) AS 'no_of_calls', 
     SUM(CASE WHEN Type = 'sms' Then 1 Else 0 End) AS 'no_of_SMS' 
FROM Table1 

或者:

SELECT Distinct Type,Count(Type) AS CountOf From Table1 Group By Type