powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Выборка данных с использованием параметров
9 сообщений из 9, страница 1 из 1
Выборка данных с использованием параметров
    #38384133
needle888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, помогите написать запрос.
Имеется таблица orders - заказы. В таблице есть поля: stat - статус заказа (значения:открыт/закрыт), date_reg - дата регистрации заказа и date_clos - дата закрытия заказа. Необходимо получить список открытых и закрытых заказов, где дата выборки задается интервалом через параметры: @StartDate и @EndDate. Причем для открытых заказов значения параметров сравниваются с date_reg, а для выполненных заказов с date_clos:
((@stat = 'открыт' and date_reg BETWEEN @StartDate AND @EndDate)
or (@stat = 'закрыт' and date_clos BETWEEN @StartDate AND @EndDate))
Отчет создается в Report Builder 2.0
...
Рейтинг: 0 / 0
Выборка данных с использованием параметров
    #38384399
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
needle888,

вместо
Код: sql
1.
2.
date_reg BETWEEN @StartDate AND @EndDate
date_clos BETWEEN @StartDate AND @EndDate

лучше
Код: sql
1.
2.
date_reg >= @StartDate AND date_reg < @EndDate + 1
date_clos >= @StartDate AND date_clos < @EndDate + 1


А так, в принципе, условие правильное. Что не получается?
...
Рейтинг: 0 / 0
Выборка данных с использованием параметров
    #38386772
needle888
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данная формулировка очень подгружает сам запрос. Возможны ли какие-то другие варианты?
...
Рейтинг: 0 / 0
Выборка данных с использованием параметров
    #38387028
Klick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user89[/src] лучше
Код: sql
1.
2.
date_reg >= @StartDate AND date_reg < @EndDate + 1
date_clos >= @StartDate AND date_clos < @EndDate + 1




Хммм... Всегда считал наоборот. На чем обоснован сей подход?


needle888 , а с вами вообще непонятно. Чего хотите-то то?
...
Рейтинг: 0 / 0
Выборка данных с использованием параметров
    #38387053
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KlickХммм... Всегда считал наоборот. На чем обоснован сей подход?


На религии и вере :)

А мне как атеисту пофиг: тынц на основы атеизма :)
...
Рейтинг: 0 / 0
Выборка данных с использованием параметров
    #38387097
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KlickВсегда считал наоборот. На чем обоснован сей подход? Допустим, надо получить выборку за 3 дня: с 27 по 29 августа. MS SQL воспринимает условие
Код: sql
1.
MyDate BETWEEN @StartDate AND @EndDate

как
Код: sql
1.
MyDate >= '27.08.2013 00:00:00.000' and MyDate <= '29.08.2013 00:00:00.000'

т.е. если будет запись от 29 августа 15ч. 30 мин, то она не попадет.

А такая форма
Код: sql
1.
MyDate >= @StartDate AND date_reg < @EndDate + 1

преобразуется в
Код: sql
1.
MyDate >= '27.08.2013 00:00:00.000' AND date_reg < '30.08.2013 00:00:00.000'

Сюда точно попадут все записи за период, даже 29 августа 23 ч. 59 мин. 59 сек.
...
Рейтинг: 0 / 0
Выборка данных с использованием параметров
    #38387468
Klick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user89,

Что мешает писать так?
Код: sql
1.
MyDate BETWEEN @StartDate AND @EndDate+1
...
Рейтинг: 0 / 0
Выборка данных с использованием параметров
    #38387543
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Klick,

это у меня на автомате. В разных базах тип Дата может хранится как DateTime , так и Date .
Универсальный способ...
...
Рейтинг: 0 / 0
Выборка данных с использованием параметров
    #38387594
Remind
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
needle888,

Код: sql
1.
where (case when @stat = 'открыт' then date_reg else date_close end between @startdate and @enddate)
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / Выборка данных с использованием параметров
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]