sql按月分組
創建一個新類,用來存查詢的得到的數據。屬性與查詢結果列數相同
在查詢語句返回值里增加時間列。查詢之後,給類賦值,然後將類存入鏈表。
遍歷鏈表,判斷月份。
分組處理。
⑵ 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商品名稱
⑶ 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) ,客戶
⑷ group by按月分組統計(SQL)
這樣試試:
SELECT 起運地,sum(里程之總計),sum(數量之總計),sum(總額之總計)
FROM [TableName] group by 起運地,substring(出發日期,5,2)
你啥資料庫啊?
⑸ plsql自定義按月分組怎麼寫
在你存儲過程里加個存放時間的表。然後用它來左連接
——--網路不給我貼代碼我暈
⑹ SQL日期按月分組,沒有某月時也要顯示出來,怎麼做
做一張月份的元數據表,然後關聯(OUTER JOIN)此表顯示。
⑺ SQL按月分組,沒有月份的數據如何顯示為0
<=12
以上是oracle的寫法。sql server可以用row_number() over(order by XXX)也可實現。
可以用上述虛擬列出的表格數據,與你的語句進行左連接,NVL空值設置為0即可。
你的WHERE語句沒有問題。如果要用GROUP BY優化的話,可能需要用到復雜的資料庫分析函數,這些分析函數用起來也比較費勁啊。。。
⑻ sql語句查詢,怎麼把不同年份和月份的數據,按年 月來分組。
將你的日期欄位格式化為年月格式:DATE_FORMAT(date, '%Y-%m'),然後再用格式化的日期分組即可
⑼ 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月查詢 有需要的話自己改下
⑽ 急!!!!求高人幫忙 SQL怎麼按月分組求值
能描述清楚點嗎?如果工作任務僅僅一個數據列,有多種數據,Oracle參考如下:
selectsubstr(時間欄位,1,4)vyear,substr(時間欄位,5,2)vmonth,sum(工作任務類型欄位)from表名groupbysubstr(時間欄位,1,4)vyear,substr(時間欄位,5,2),
工作任務是不是一個欄位,欄位里只有 :文檔、工作任務、零部件、變更通知、問題報告、變更任務六種數據類型;如果是的話,Oracle的參考如下:
selectsubstr(時間欄位,1,4)vyear,substr(時間欄位,5,2)vmonth,工作任務類型欄位,sum(你要計算的數值)from表名groupbysubstr(時間欄位,1,4)vyear,substr(時間欄位,5,2),工作任務類型欄位
僅供參考,謝謝!