㈠ 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)+'月'
㈡ sql語句,按年度查詢循環查詢一到十二月的匯總表,那位高手幫我寫一個例子啊
假如資料庫表:你的費用表
數據欄位: 用戶, 費用, 日期
select 用戶, sum(費用), year(日期), month(日期) from
( select 用戶, 費用, 日期 from 你的費用表 where 用戶 ='你給定的值' ) ttt group by 用戶,year(日期), month(日期)
㈢ 求助,sql存儲過程。根據選擇的年份,匯總12個月份的信息。
datepart(month,日期)能得到月份
sql語句大概是好物:
select from
group by datepart(month,日期)
如果你想月份打橫排在標題列的話用case when。
你的圖看不清,資料庫模李的表結構不知道,我只能友碼液盡人事幫到這里
㈣ sql 從日期中提取年份,按年份求和
思路:先准備好整個時間段的月份,然後關聯統計就行了;
--mssql:
WITHTMPAS
(SELECT'1994-1-1'ASBEGAN_DATE,'1994-12-1'ASEND_DATE,100.00ASJS,
1200.00ASZJS
UNIONALL
SELECT'1995-1-1','1995-5-1',100.00,500.00
UNIONALL
SELECT'1995-6-1','1998-3-1',100.00,34000.00
)
,TMP1AS(SELECTDATEADD(MONTH,T.NUMBER,T1.BEGAN_DATE)AST_MONTH
FROMMASTER..SPT_VALUEST,
(SELECTMIN(BEGAN_DATE)ASBEGAN_DATE,
DATEDIFF(MONTH,MIN(BEGAN_DATE),MAX(END_DATE))AST_MONTH
FROMTMP)T1
WHERET.NUMBER<=T1.T_MONTHAND
T.TYPE='P')
SELECTDATENAME(YEAR,T1.T_MONTH)ASYEARS,SUM(T.JS)ASZJS
FROMTMPT
INNERJOINTMP1T1
ONT1.T_MONTH>=CAST(T.BEGAN_DATEASDATE)AND
T1.T_MONTH<=CAST(T.END_DATEASDATE)
GROUPBYDATENAME(YEAR,T1.T_MONTH),T.BEGAN_DATE
ORDERBYDATENAME(YEAR,T1.T_MONTH);
--oracle:
WITHTMPAS
(SELECT'1994-1-1'ASBEGAN_DATE,'1994-12-1'ASEND_DATE,100.00ASJS,
1200.00ASZJS
FROMDUAL
UNIONALL
SELECT'1995-1-1','1995-5-1',100.00,500.00
FROMDUAL
UNIONALL
SELECT'1995-6-1','1998-3-1',100.00,34000.00
FROMDUAL),
TMP1AS
(SELECTADD_MONTHS(BEGAN_DATE,LEVEL-1)T_MONTH
FROM(SELECTTO_DATE(MIN(BEGAN_DATE),'YYYY-MM-DD')BEGAN_DATE,
TO_DATE(MAX(END_DATE),'YYYY-MM-DD')END_DATE
FROMTMP)
CONNECTBYLEVEL<=MONTHS_BETWEEN(END_DATE,BEGAN_DATE)+1)
SELECTTO_CHAR(T_MONTH,'YYYY')ASYEARS,SUM(T.JS)ASZJS
FROMTMPT
INNERJOINTMP1T1
ONT1.T_MONTH>=TO_DATE(T.BEGAN_DATE,'YYYY-MM-DD')AND
T1.T_MONTH<=TO_DATE(T.END_DATE,'YYYY-MM-DD')
GROUPBYTO_CHAR(T_MONTH,'YYYY'),T.BEGAN_DATE
ORDERBYTO_CHAR(T_MONTH,'YYYY')
㈤ sql查詢數據,好多都需要按年份查詢,按年份查數據有哪幾種方式呢
第一種:
dateCol >= '2011-1-1' and dateCol < '2012-1-1'
第二種:
YEAR(dateCol) = 2011
第三種:
DATENAME(yy, dateCol) = '2011'
㈥ SQL: 一般情況按年分組,特殊年份按指定日期分組,SELECT語句怎麼寫
如果只是一年的話還好說,如果是三四年那就麻煩了,但是如果每一年都要這樣還反而簡單了,最怕的就是某些特殊要求,那樣不好寫。
我寫一個一年的,寫一個全部的。
這是一年的,可能casewhen不能這么直接放在groupby的後面,那麼可以先這么改造一下表,然後外面在套一層select就可以實現了。
select case when year(日期)=2017 and month(日期)<5 then '2017-05-01以前'
when year(日期)=2017 and month(日期)>4 then '2017-05-01至年底' else year(日期) end
年份,count(*) from table group by
(case when year(日期)=2017 and month(日期)<5 then '2017-05-01以前'
when year(日期)=2017 and month(日期)>4 then '2017-05-01至年底' else year(日期) end)
全部的
select concat(year(日期),case when month(日期)<5 then 1 else 2 end) 組合欄位,count(*) from table group by concat(year(日期),case when month(日期)<5 then 1 else 2 end)
其實是一樣的,就是把原表改了一下,只是這兩種情況是比較好改的,如果有三年或者四年是需要進行這樣的分組,那就麻煩了。如果有這種情況,建議在表中加一個標示欄位,那樣就能簡單一些了。
㈦ SQL按條件匯總求和
如下:
1、第一步,將示例表導入SQL語句中,見下圖,轉到下面的步驟。
㈧ SQL按年度統計銷售額 怎麼寫
缺欄位,你倆表必須有個訂單id關聯,你自己查一下
如果存在這個訂單id的話
比如查2013年的
selectyear(訂單.訂購日期)年份,sum(訂單明細.單價*訂單明細.數量)銷售金額
from訂單,訂單明細where訂單,訂單id=訂單明細.訂單id
whereyear(訂單.訂購日期)=2013
groupbyyear(訂單.訂購日期)
㈨ SQL語句統計每天、每月、每年的銷售總額
一、SQL語句統計每年的銷售總額
select year(ordertime) 年,
sum(Total) 銷售合計
from 訂單表
group by year(ordertime)
二、SQL語句統計每月的銷售總額
select year(ordertime) 年,
month(ordertime) 月,
sum(Total) 銷售合計
from 訂單表
group by year(ordertime),
month(ordertime
三、SQL語句統計每日的銷售總額
select year(ordertime) 年,
month(ordertime) 月,
day(ordertime) 日,
sum(Total) 銷售合計
from 訂單表
group by year(ordertime),
month(ordertime),
day(ordertime)
(9)sql按年匯總擴展閱讀
mysql查詢每天、每周、每月的數據方法
一、查詢每天的數據
SELECT
COUNT(1) AS countNumber,
DATE_FORMAT(createTime,'%Y-%m-%d') AS dateTime
FROM
testTable
GROUP BY DATE_FORMAT(createTime,'%Y-%m-%d')
二、查詢每周的數據
SELECT
COUNT(1) AS countNumber,
WEEK(createTime) as dateTime
FROM
testTable
GROUP BY WEEK(createTime)
三、查詢每月的數據:
SELECT
COUNT(1) AS countNumber,
MONTH(createTime) as dateTime
FROM
testTable
GROUP BY MONTH(createTime)
㈩ sql 怎麼查詢每一年1到12個月的數據
工具/材料:Management Studio。
1、首先在桌面上,點擊「Management Studio」圖標。