国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

SQL自動補充其他月份為0

2024-07-21 02:50:47
字體:
來源:轉載
供稿:網友
SQL自動補充其他月份為0
create table PRoductSale(ID int identity(1,1) primary key,ProductName nchar(10), Sales int,Dates datetime)
insert into ProductSaleselect  'A',100,'2014-01-05'UNION ALLselect  'A',200,'2014-02-05'UNION ALLselect  'A',300,'2014-03-05'UNION ALLselect  'B',100,'2014-01-05'UNION ALLselect  'B',300,'2014-03-05'UNION ALLselect  'B',400,'2014-04-05'
select row_number() over (order by b.年) as ID , b.ProductName,ISNULL(c.Sales,0) Sales,b.Dates from (select rtrim(a.年)+'-'+rtrim(t.number)+'-'+rtrim('01') as Dates,a.ProductName,a.年,t.number 月 from (SELECT distinct YEAR(Dates) as 年,ProductName from ProductSale) a,master..spt_values t  where t.type='p' and t.number>=1 and t.number<=12) b left join ProductSale as c on b.年=YEAR(c.Dates) and b.月=MONTH(c.Dates) and b.ProductName=c.ProductName

運行SQL語句之前:

運行SQL語句之后:

知識點

1、獲取日期的年份、月份(GetDate() = '2006-11-08 13:37:56.233')

MONTH( date )返回表示指定日期的“月”部分的整數。SELECT MONTH(GETDATE()) --返回11

YEAR( date )返回表示指定日期的“年”部分的整數。SELECT YEAR(GETDATE()) --返回2006

2、master..spt_value表的含義

相當于一個數字輔助表(master.dbo.spt_value),master是數據名,spt_value是表名,在sql中主要用到number字段。

3、sql創建表,自動增長字段IDENTITY

語法:IDENTITY(seed,increment)

參數:seed 加載到表中的第一個行所使用的值;

increment 與前一個加載的行的標識值想家的增量值。

create table ProductSale(ID int identity(1,1) primary key)

4、連接字段

如果字段都是CHAR型,直接用“+”連接;如果地段都是INT型,用CASE函數轉換下,即case(字段名 as varchar(4) ),rtrim()函數,將字符串尾部的空格去掉。

5、sql語句實現斷號問題(ROW_NUMBER函數)

row_number() over (order by b.年 ) as ID

參考資料:

http://bbs.csdn.net/topics/390656141

http://s.yanghao.org/program/viewdetail.php?i=347818


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 子长县| 龙州县| 家居| 明水县| 乐安县| 耿马| 万全县| 五华县| 志丹县| 雷波县| 临洮县| 麦盖提县| 南召县| 佛山市| 红桥区| 阿拉善右旗| 永吉县| 彰武县| 衡南县| 碌曲县| 北碚区| 沭阳县| 威远县| 讷河市| 凌云县| 英超| 庆云县| 田阳县| 安化县| 婺源县| 巩义市| 巴林右旗| 蕉岭县| 广德县| 盐山县| 泾川县| 文安县| 行唐县| 信丰县| 三门峡市| 黑龙江省|