我有一个如下的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
创建一个包含特定时间间隔内的所有分钟的表格。外部加入与完全合格的分钟相反。只采取有参考日期但没有数据的结果。 –