0

SQL Server 2008 を使用して、

次のような手順があります。

SELECT 
    UserId, Name, Company, LanguageId, CodeRegisteredWith, TotalLoggedInDuration, 
    Region, IsAdmin,
    IsRep, IsRetailer, IsTeamLeader, [dateregistered] 
FROM 
    RoundupAcademy.dbo.UserProfile WITH(NOLOCK)
WHERE 
    (Convert(smalldatetime, DateRegistered, 120) >= Convert(smalldatetime, '2013-1-1', 120) 
    AND (Convert(smalldatetime, DateRegistered, 120) <= convert(smalldatetime, '2013-8-8', 120)))

これは正常に機能し、日付間の結果が表示されます。

ただし、このクエリといくつかの条件を次のように拡張すると、次のようになります。

SELECT 
   UserId, Name, Company, LanguageId, CodeRegisteredWith, TotalLoggedInDuration,     
   Region, IsAdmin, IsRep, IsRetailer, IsTeamLeader, [dateregistered] 
FROM 
   RoundupAcademy.dbo.UserProfile WITH(NOLOCK)
WHERE 
   UserId is not null OR UserId not like '' 
   AND 
   (@LanguageID = 0 OR ([LanguageID] = @LanguageID ))
   AND 
   ((Convert(smalldatetime, DateRegistered, 120) >= Convert(smalldatetime, @datereg,  120) 
AND (Convert(smalldatetime, DateRegistered, 120) <= convert(smalldatetime, @dateend, 120))))

日付が表示されているようです。

私の他の条件は問題ないように見えるので、何が問題なのかわかりません。

何か案は?

4

2 に答える 2

3

交換

WHERE UserId is not null OR UserId not like '' 

WHERE (UserId is not null OR UserId not like '')

そうしないと、UserId is not null またはその他の条件が true であるすべてのレコードを取得することになります。

于 2013-08-13T10:08:09.837 に答える