我正在尝试在SQL中编写一个where子句,其中有一个日期范围搜索,但如果用户输入一个票号,它将完全忽略日期范围。
我遇到的问题是日期范围不起作用,无论您输入的是什么日期(没有票号),它都会返回所有结果。
Opened connection at 12/02/2016 12:26:49 +01:00
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].[fsign_fiche_signaletique] AS [Extent1]
) AS [GroupBy1]
-- Executing at 12/02/2016 12:26:52 +01:00
-- Completed in 10 ms with result: SqlDataReader
Closed connection at 12/02/2016 12:26:52 +01:00
Opened connection at 12/02/2016 12:26:52 +01:00
SELECT
[GroupBy1].[A1] AS [C1]
FROM ( SELECT
COUNT(1) AS [A1]
FROM [dbo].[fsign_fiche_signaletique] AS [Extent1]
) AS [GroupBy1]
-- Executing at 12/02/2016 12:26:52 +01:00
-- Completed in 5 ms with result: SqlDataReader
Closed connection at 12/02/2016 12:26:52 +01:00
The program '[4316] ConsoleApplication1.vshost.exe' has exited with code -1073741510 (0xc000013a).
答案 0 :(得分:4)
如果输入空白票号,则第一部分的评估结果为:
weighing.TicketNo LIKE '%%'
有多少条记录满足?所有这些。
我建议你试试这个:
(ISNULL(@TicketNo,'') <> '' AND weighing.TicketNo LIKE '%'+ @TicketNo + '%')
OR
(ISNULL(@TicketNo,'') = '' AND [Weighing].[WeighingDate]
BETWEEN @startDate AND @endDate)