2017-09-29 58 views
0

我有一個交易表,我想寫一個查詢爲每天的每個位置的交易數。我已經寫了下面的查詢只計算交易總額爲這就是WHERE子句中指定的時間段:在SQL中按位置計算?

Select Date_Format(T.Date,'%m-%d-%y') as Date, S.StoreLocation, 
    Count(S.StoreLocation) as Transactions 
    From Transactions T 
    Inner Join Stores S on T.StoreCode=S.StoreCode 
    Where T.Date Between '2017-08-01 00:00:00' and '2017-08-31 23:59:59' 
    Group By S.StoreLocation 

爲了澄清,表中的每一行是一個交易,所以我只需要統計按地點和按天排列的行數。我希望這樣做,因爲我需要按地點回顧這些交易,回溯多年,這將是數千萬筆交易。

我想對輸出數據是這個樣子:

日期 | 店鋪位置 | 交易記錄
08-01-2017 |位置1 | 500
08-02-2017 |位置1 | 450
08-03-2017 |位置1 | 600

...對於超過100個位置中的每個位置和指定的時間段等等等等。

另請注意,我們的日期以格式「2017-08-01 00:00:00」列在表格中,這就是爲什麼我在查詢中更改格式以便每天顯示。我正在嘗試做什麼?我會很感激幫助。

+0

添加DATE_FORMAT(T.Date, '%間%D-%Y')到組由 – twoleggedhorse

+0

看到的是https://meta.stackoverflow .com/questions/333952/why-should-i-provide-an-mcve-for-what-seem-to-to-what-seems-to-very-simple-sql-query – Strawberry

+0

@Strawberry我在寫一個sql小提琴的例子,但在我的手機,需要年齡的過程,所以我給用戶的東西嘗試在此期間 – twoleggedhorse

回答

0

就快成功了,你缺少的是裏面的日期之前,您GROUP BY 當你寫一個SQL腳本,像這樣的,你的問題實際上提供了答案

計數 S的數交易每個位置通過

  1. 計數交易的號碼是您的聚合函數COUNT(S.StoreLocation)
  2. 每個位置是第一GROUP BY條款
  3. 通過天是第二GROUP BY條款。

SELECT Date_Format(T.Date,'%m-%d-%y') AS Date 
     ,S.StoreLocation 
     ,COUNT(S.StoreLocation) AS Transactions 
FROM  Transactions T 
     INNER JOIN Stores S 
      ON T.StoreCode = S.StoreCode 
WHERE T.Date BETWEEN '2017-08-01 00:00:00' AND '2017-08-31 23:59:59' 
GROUP BY S.StoreLocation 
     ,Date_Format(T.Date,'%m-%d-%y') 

工作示例可以在這裏找到:SQL Fiddle