我有一個如下的SQL語句,我希望以分鐘爲單位檢查數據,其中D.DatalogValue
沒有任何值,它不會顯示爲空值或零值無論是。下面的輸出結果示例將顯示爲2016-06-01 00:32:29爲缺少createdDate。在幾分鐘內檢查SQL中的丟失時間間隔
SELECT
A.DefID, A.ObjID,
C.ObjName, C.Dev_ID,
A.Pro_ID, A.ArrayIndex,
A.DefType, A.TObjID, A.DimeId, A.DefId,
D.DatalogValue, D.PanelDt, D.CreatedDate
FROM
Table A, Table C, Table D
WHERE
A.ObjID = C.ObjID
AND C.ObjID = '2627'
AND A.DefID = D.DefID
AND D.CreatedDate BETWEEN '2016-06-01' AND '2016-06-02'
ORDER BY
C.ObID,C.ObjName;
的樣本數據:
Create Date DatalogValue
-------------------------------------
2016-06-01 00:29:29 0.01
2016-06-01 00:30:29 0.02
2016-06-01 00:31:29 0.03
2016-06-01 00:33:29 0.04
通過使用所提供的解決方案,我已經走出了一條SQL語句,但它仍然沒有能夠表現出我想要的結果。我不知道我在做這部分錯我的代碼如下:
DECLARE @StartDate DATETIME = '2016-07-01';
DECLARE @EndDate DATETIME = '2016-07-31';
WITH Check_Dates AS (
SELECT @StartDate [Date]
UNION ALL
SELECT DATEADD(MINUTE, 1, [Date]) FROM Check_Dates
WHERE [Date] < DATEADD(DAY, 1, @EndDate)
)
SELECT
FORMAT(d.Date, 'yyyy-MM-dd HH:mm') [Created Date]
FROM Check_Dates d
WHERE
NOT EXISTS(
SELECT
Format(D.CreatedDate, 'yyyy-MM-dd HH:mm')as created_dt
FROM TABLE A
,TABLE C
,TABLE D
WHERE A.ObjID=C.ObjID
AND C.ObjID IN('3915')
AND A.DefID=D.DefID
AND D.CreatedDate BETWEEN '2016-07-01' AND '2016-08-01'
)
OPTION (MAXRECURSION 0);
無論你需要一個'outer join'還是一個'outer'表都帶有'outer join' - 難以說沒有樣本數據和預期的結果(以及可能的表結構)。 – sgeddes
@sgeddes您好我重新編輯我的文章樣本數據,因爲我面臨的問題是它沒有插入零或空它會直接跳過它,我需要顯示哪些分鐘沒有出現。 – user1391079
創建一個包含特定時間間隔內的所有分鐘的表格。外部加入與完全合格的分鐘相反。只採取有參考日期但沒有數據的結果。 –