私は以下のようなSQL文を持っており、D.DatalogValue
に値がなく、NULLまたはゼロの値として表示されない分単位でデータをチェックしたいとしますどちらか。以下の出力結果のサンプルは、createdDateが見つからないと表示されます(2016-06-01 00:32:29)。分単位の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);
外部結合が必要な場合や、外部結合を持つ 'times'テーブルが必要な場合 - サンプルデータと期待される結果(場合によってはテーブル構造)がなくても言い難い。 – sgeddes
@sgeddesこんにちは私はサンプルデータを投稿しました。私が直面している問題は、ゼロを挿入しなかったか、またはそれをスキップするよう指示したので、表示されなかった分を示す必要があるからです。 – user1391079
一定間隔内のすべての分を含む表を作成します。完全修飾された分でそれに対する外部結合。基準日はあるがデータはない結果のみを取ります。 –