SQL Server 2005 사용.여러 열의 Null 필터링
데이터가 2 개의 별도 테이블에 있으며 쓰기 권한이 있습니다.
이DateTime1 | DateTime2
-----------------------
2012-06-01 | 2012-06-01
2012-06-02 | 2012-06-02
2012-06-04 | 2012-06-05
2012-06-02 | NULL
NULL | 2012-06-05
2012-06-04 | 2012-06-05
NULL | NULL
내가 DateTime1 및 DATETIME2이 값을 포함하는 값을 계산 할 수있다 할 노력하고 있어요 것은, DateTime1 날짜를 포함하고 DATETIME2가 NULL, DateTime1은 NULL이며 DATETIME2 포함 : 같은
데이터 보인다 값.
전체적으로 나는 DateTime1이 Null이고 DateTime2가 null이되는 것을 피하려고 노력하고 있습니다.
내 문은 다음과 같습니다 :Where (DateTime1 is not null or DateTime2 is not null)
유일한 문제는 모두 null 값이 어디에 여전히 게재되고있다. 왜 이것이 일어날 지 또는 해결 방법을 아는 사람은 누구입니까?
감사
편집 전체 쿼리를 @Lamak의 요청에 따라
;With [CTE] As (
Select
TH.ID
,AMT
,Reason
,EffDate
,DateReq
,CS_ID
,ROW_NUMBER()
Over (Partition By ID Order By [pthPrimeKey] Desc) as [RN]
From
DateTime1Table as [MC] (nolock)
Left Join History as [TH] (nolock) on [TH].[ID] = [MC].[ID]
Left Join Trans as [SUB] (nolock) on [SUB].TransactionReasonCode = [TH].Reason
Left Join Renew as [RM] (nolock) on [MC].ID = [RM].ID
Where
([MC].[DateTime1] is not null or [RM].[DateTime2] is not null)
And [PostingDate] = DATEADD(dd, datediff(dd, 1, GetDate()),0)
)
SELECT
[ID]
,[AMT] as [Earned]
,[Reason] as [Reason]
,[EffDate] as [Eff]
,[DateReq] as [Date_Cancel_Req]
,[pthUserId_Number] as [CSR]
FROM [CTE]
Where RN <= 1
당신의'어디서 '괜찮습니까, 문제는 다른 뭔가 여야합니다. 그 값이 실제로'NULL'인지 확신 할 수 있습니까?,'DATETIME' 데이터 타입의 열입니까? 'NULL'' 문자열이있을 수 있기 때문입니다 – Lamak
@GSerg - 왜?, s/he 만 두 열이 모두 NULL이고 where it이 무엇을하고 있는지 결과를 필터링해야합니다. – Lamak
@Lamak 열은 DateTime이며 문자열 값은 NULL 값이 아니며 실제 NULL 값입니다. – Brad