簡體   English   中英

檢查SQL中是否缺少數據

[英]Checking for missing data in SQL

我很難知道這是否有解決方案。

我試圖檢測丟失的每小時數據。 樣品:

表HRLY_DATA:

NAME          HOUR
Me            0
Me            1
Me            2
Me            3
Me            6
Me            7
You           0
You           1
You           2
You           3
You           4
You           5
You           6
You           7

如您所見,Me的[HOUR]數據缺少4和5.我想要一個輸出的查詢:

NAME          HOUR
Me            4
Me            5

現在,這就是我所擁有的:

SELECT d.NAME, HR FROM HRs c
LEFT OUTER JOIN
   (
   SELECT distinct a.NAME
   FROM HRLY_DATA a
   INNER JOIN
      (
      SELECT NAME FROM
         (
         SELECT NAME, count(*) as CNT
         FROM
            (
            SELECT DISTINCT NAME, HOUR
            FROM HRLY_DATA
            ) as i
         GROUP BY NAME
         ) as ii
      WHERE CNT < 8
      ) as b
   ON a.NAME=b.NAME
   ) as d
ON c.HR=d.HOUR
WHERE d.HOUR IS NULL

的HR

HR
0
1
2
3
4
5
6
7

我得到這個輸出:

NAME          HR
NULL          4
NULL          5

HOUR的數據范圍僅為0 - 7 ..

順便說一下,我正在使用SQL SERVER / MSSQL。

:(

對不起,如果我無法清楚地解釋我的問題。 :(

請試試:

select 
    distinct x.NAME, number HOUR
From 
    master.dbo.spt_values cross join HRLY_DATA x
where number between 0 and 7
except
select NAME, HOUR FROM HRLY_DATA

由於表HR包含數據0-7,請嘗試:

select 
    distinct NAME, HR
From 
    @HR cross join HRLY_DATA 
except
select * from HRLY_DATA 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM