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

首頁 > 開發(fā) > 綜合 > 正文

找出范圍內(nèi)丟失的數(shù)據(jù)

2024-07-21 02:46:58
字體:
供稿:網(wǎng)友
找出范圍內(nèi)丟失的數(shù)據(jù)

數(shù)據(jù)庫環(huán)境 SQL SERVER2008R2

需求:有一個表的日期字段,存的是每天的日期,且該字段存在唯一性約束。由于管理員誤操作,把當前月的一些日期給刪了,

現(xiàn)在要把被刪除的日期給找出來。

實現(xiàn)思路:創(chuàng)建一個日期輔助表,輔助表存的是當前月的所有日期,再和目標表左關(guān)聯(lián),日期對應(yīng)不上的則是丟失的日期。

數(shù)據(jù)準備:

1.創(chuàng)建一個1-100的自然數(shù)列表

SELECT TOP 100        id = IDENTITY( INT,1,1 )INTO    dbo.t100FROM    sysobjects

2.模擬生成丟失日期的目標表,日期對應(yīng)的天數(shù)能被3或者7整除的都是丟失的日期

/*取到當前月的月初和月末日期*/WITH    x0          AS ( SELECT   CONVERT(DATE, DATEADD(d, -DAY(GETDATE()) + 1,                                              GETDATE())) AS date_begin ,                        CONVERT(DATE, DATEADD(d, -DAY(GETDATE()),                                              DATEADD(m, 1, GETDATE()))) AS date_end             ),/*生成日期序號*/        x1          AS ( SELECT   date_begin ,                        date_end ,                        DATEDIFF(d, date_begin, date_end) + 1 AS nday               FROM     x0             ),/*遍歷本月的日期*/        x2          AS ( SELECT   ddate ,                        id               FROM     ( SELECT    DATEADD(d, id - 1, date_begin) AS ddate ,                                    id                          FROM      t100                                    LEFT JOIN x1 ON t100.id <= x1.nday                        ) t               WHERE    ddate IS NOT NULL             )    SELECT  ddate    INTO    testDate    FROM    x2    WHERE   ( id % 3 != 0 )            AND ( id % 7 != 0 )

3.找出缺失的日期

SELECT  x2.*FROM    x2        LEFT JOIN testDate ON x2.ddate = testDate.ddateWHERE   testDate.ddate IS NULL

好了,我們來對比一下數(shù)據(jù),左邊是目標表,右邊是缺失日期數(shù)據(jù)集,剛好對得上。

缺失日期


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 昆山市| 金山区| 奇台县| 宜春市| 澄江县| 盘山县| 环江| 铜鼓县| 肥城市| 留坝县| 武夷山市| 吴堡县| 奎屯市| 北碚区| 正定县| 枞阳县| 新巴尔虎右旗| 杭锦旗| 阿克陶县| 神农架林区| 清原| 鹤壁市| 福建省| 徐水县| 平武县| 资阳市| 兴业县| 贵阳市| 乐都县| 伊宁县| 阜康市| 织金县| 绵竹市| 溧水县| 彰化市| 绵阳市| 荔波县| 金秀| 出国| 安福县| 二连浩特市|