sql按月分組統計
A. sql語句實現分組統計
方法和詳細的操作步驟如下:
1、第一步,創建一個測試表,詳細代碼見下圖,轉到下面的步驟。
B. sql裡面根據月份分組顯示,急!!!
問題一:
SELECT商品名稱,SUM(casewhenmonth(銷售日期)=1then銷售數量else0end)1月,
SUM(casewhenmonth(銷售日期)=2then銷售數量else0end)2月,
SUM(casewhenmonth(銷售日期)=3then銷售數量else0end)3月,
SUM(casewhenmonth(銷售日期)=4then銷售數量else0end)4月,
SUM(casewhenmonth(銷售日期)=5then銷售數量else0end)5月,
SUM(casewhenmonth(銷售日期)=6then銷售數量else0end)6月,
SUM(casewhenmonth(銷售日期)=7then銷售數量else0end)7月
FROM表一
groupby商品名稱
問題二:
CREATEPROCP1AS
SELECT商品名稱,SUM(casewhenmonth(銷售日期)=1then銷售數量else0end)1月,
SUM(casewhenmonth(銷售日期)=2then銷售數量else0end)2月,
SUM(casewhenmonth(銷售日期)=3then銷售數量else0end)3月,
SUM(casewhenmonth(銷售日期)=4then銷售數量else0end)4月,
SUM(casewhenmonth(銷售日期)=5then銷售數量else0end)5月,
SUM(casewhenmonth(銷售日期)=6then銷售數量else0end)6月,
SUM(casewhenmonth(銷售日期)=7then銷售數量else0end)7月
FROM表一
groupby商品名稱
C. sql截止上月查詢語句,按月統計
你這種,要把月份條件寫到where里,褲埋不要直接加在select那
這樣試試:
SELECT時間,ISNULL(SUM(數量),0)AS故障數量
FROM
(SELECTCONVERT(varchar(7),首次接報時間,120)AS時間,
第一所屬專業部門,COUNT(id)AS數量
FROMdbo.FaultsWHERE祥信(第一所屬專業部門LIKEN'機電')
andcast(convert(varchar(4),dateadd(mm,-1,getdate()),120)asint)=year(首次接報時間)
andconvert(varchar(7),首次接報時間,120)<=convert(varchar(7),dateadd(mm,-1,getdate()),120)
GROUPBY首次接報時間,第一所屬專業部門)ASaGROUPBY第一所屬胡宴螞專業部門,時間
D. SQL如何按年份月份統計
select left(convert(varchar(10),[datetime],120),7) as 月份,sum(Amount) as 總數
from 表
where [datetime]<='你輸入的時間條件'
group by left(convert(varchar(10),[datetime],120),7)
根據你的數據結果格式重新修改了下:
select cast(datepart(year,[datetime]) as varchar)+'年'+cast(datepart(month,[datetime]) as varchar)+'月' as 月份,sum(Amount) as 總數
from 表
where [datetime]<='你輸入的時間條件' and datepart(year,[datetime])=left('你輸入的時間條件',4)
group by cast(datepart(year,[datetime]) as varchar)+'年'+cast(datepart(month,[datetime]) as varchar)+'月'
E. sql中根據表中一個欄位分組分別統計每個分組的記錄數
分組統計可以參考以下操作:
當數組重復的時候分組才有意義,因為一個人也可以分為一組,只是沒有意義而已,分組採用GROUP BY語句完成,語法如下:
F. SQL按月統計,按日分組
declare @yf int
declare @rqxx varchar (30)
declare @rqsx varchar (30)
set @yf = '' --輸入月份
set @rqxx =convert(varchar(30),@yf-1)+'月'+'26日'+'14:30:00'
set @rqxx =convert(varchar(30),@yf)+'月'+'25日'+'14:30:00'
select sum(交易量) from a where 交易時間 between @rqxx and @rqsx
這個只是個思路
上面我把@rqxx,@rqsx 定義為 varchar 你在具體定義時 要和a中交易時間一致,時間格式也要改 而且這個月份只能實現 2月--12月查詢 有需要的話自己改下
G. SQL把日期按月分類,匯總相關數據
不知道你是什麼資料庫,只能寫個意思,具體的內容要你自己搞定。
其實就是把日期欄位截取一下,如果日期本身沒辦法截取,那就轉換一下。比如如果是oracle那麼可以用to_char轉換為字元型,然後再截取。如果擔心1月和10月截取重復,那就多截取一位,或者查找第二個/字元的位置截取。
截取完成後,在用截取後的日期和客戶分組,金額匯總求和就可以了。
我比較熟悉oracle,我用oracle的寫法嘗試這寫一個,如果不是oracle,那麼你就要自己找找類似的了。(日期也可以直接截取,不過好長時間沒寫忘記怎麼寫了,就寫一個轉換的吧)
select substr(to_char(日期),1,instr(to_char(日期),'/',1,2)-1) 月份,客戶,sum(金額匯總) from table group by substr(to_char(日期),1,instr(to_char(日期),'/',1,2)-1) ,客戶