【问题标题】:Why doesn't the procedure return the data ?为什么程序不返回数据?
【发布时间】:2016-01-25 13:49:01
【问题描述】:

我一直在处理这个查询,它应该返回介于指定日期范围之间的数据,但事实并非如此。它返回是否落在范围之间的数据。

@DateTo @DateFrom 属于 DateTime 类型;

If(@fk_UserRoles_WebUsers_RoleID = 1) BEGIN
SELECT Cases.pk_Cases_CaseID,
       Cases.CaseTitle,
       Cases.CasePetitioner,
       Cases.CaseNo,
       Cases.CaseLetterBy,
       Cases.CaseEntryDateTime,
       CaseHearings.pk_CaseHearings_ID,
       CaseHearings.Responder,
       CaseHearings.Supervisor,
       CaseHearings.Judge,
       CaseHearings.IsOpeningDate,
       CaseHearings.IsOpeningClosingDate,
       Convert(varchar, CaseHearings.ClosingDate, 106) AS ClosingDate,
       Convert(varchar, CaseHearings.ReOpeningDate, 106) AS ReOpeningDate,
       Convert(varchar, CaseHearings.OpeningDate, 106) AS OpeningDate,
       CaseHearings.IsConveyed,
       CaseHearings.IsClosingDate,
       Convert(varchar, CaseHearings.HearingDate, 106) AS HearingDate,
       Cases.fk_ConcernedOffices_Cases_ConcernedOfficeID,
       CaseHearings.CourtOrder,
       CaseHearings.CaseRemarks,
       ConcernedOffices.ConcernedOfficeName,
       Courts.CourtName,
       Convert(varchar,CaseHearings.GeneralDate, 106) AS GeneralDate,
       CaseHearings.IsHearingDate
FROM Cases
LEFT JOIN CaseHearings ON Cases.pk_Cases_CaseID= CaseHearings.fk_Cases_CaseHearings_CaseID
AND ((@DateFrom =''
      AND @DateTo ='')
     OR (Cases.CaseEntryDateTime >= @DateFrom
         AND Cases.CaseEntryDateTime < DATEADD(DAY, 1, @DateTo) ) )
LEFT JOIN ConcernedOffices ON ConcernedOffices.pk_ConcernedOffices_ID= Cases.fk_ConcernedOffices_Cases_ConcernedOfficeID
LEFT JOIN Courts ON Courts.pk_Courts_CourtID= CaseHearings.fk_Courts_CaseHearings_CourtID
INNER JOIN Web_Users ON Web_Users.UserID= Cases.fk_WebUsers_Cases_UserID
WHERE (@CaseNo =''
       OR (@CaseNo!=''
           AND Cases.CaseNo LIKE '%'+ @CaseNo +'%'))
  AND Cases.CaseTitle LIKE '%'+@CaseTitle+'%' END

【问题讨论】:

  • @DateFrom ='' AND @DateTo =''- 应该使用 NULL 检查
  • @AllanS.Hansen 我的大脑有点停止工作,无法弄清楚问题所在,请您指正吗?

标签: sql sql-server tsql sql-server-2012


【解决方案1】:

您在连接中使用了@DateFrom 和@DateTo,这意味着在连接表之间的数据时会检查此条件。您应该在 where 子句中使用此条件,以便根据您的条件过滤记录。

【讨论】:

  • Nahi bhai, meine woh bhi check ki, kaam nahi krti
  • 尝试去掉where子句中的其他条件,只添加这个,看看where子句中的其他条件是否没有问题。
猜你喜欢
  • 2012-08-24
  • 1970-01-01
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
  • 2021-06-18
  • 2011-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多