Я нашел несколько статей о том, как выполнить обратное тому, что я хочу сделать с помощью нескольких методов (IS NULL, CASE, COALESCE), но я думаю, что в этот момент я более смущен чем когда-либо после прочтения всего этого, и, вероятно, решение было сложнее, чем нужно. Я новичок в T-SQL, и в настоящее время я использую VS 2005 для создания основного медицинского отчета.Параметр, чтобы найти все записи или исключить NULL
У меня есть параметр Диапазон дат, который работает правильно, используя команду convert, чтобы игнорировать метку времени, дающую мне все записи для диапазона дней или дат. Теперь я хочу фильтровать SSRS-ретрансляцию по предварительной дате отчета, чтобы найти записи с предварительным отчетом или все записи в таблице.
- База данных содержит NULL, если не предварительный отчет не был создан
- База данных содержит метку времени, если предварительный отчет был создан. (с указанием даты и времени создания)
Мне нужно найти все записи не NULL, а все записи. (с использованием параметра)
У меня есть параметр «Показывать только предварительные отчеты?». @PrelimOnly с ответом ДА или НЕТ.
Если я использую следующий будет правильно показать все записи (все записи не NULL показаны только записи с Prelim отчет/штамп времени по настоящее время)
LIS_Results.Prelim_Report_Date <> '@PrelimOnly' ----User selects YES it passes NULL
однако, если пользователь выбирает NO, как бы я получить его для отображения всех записей, включая NULL?
Спасибо за любую помощь
Благодарим вас за вашу помощь, это было в конечном счете, комбинация обоих, что получили это происходит. Синтаксис следующий.
WHERE (@PrelimOnly = 'NO') AND (CONVERT(VARCHAR(10), LIS_Results.Final_Report_Date, 101) BETWEEN @ReportStartDate AND @ReportEndDate) OR (LIS_Results.Prelim_Report_Date IS NOT NULL) AND (CONVERT(VARCHAR(10), LIS_Results.Final_Report_Date, 101) BETWEEN @ReportStartDate AND @ReportEndDate)
Только отзыв о датах. Вместо того, чтобы удалять временные части путем преобразования в varchar (10), это необходимо быстрее. «SELECT DATEADD (dd, (DATEDIFF (dd, 0, t.DateTimeColumn)), 0) FROM Table t;" Он вычисляет количество дней с года 0 до даты и добавляет это значение к дате 0. Все типы даты и времени. –