powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, написать нормальный запрос
9 сообщений из 9, страница 1 из 1
Помогите, пожалуйста, написать нормальный запрос
    #32061885
seregams
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Есть табличка "Заказы" с полем, в котором стоит "дата заказа". Есть период с даты1 по дата2. Нужно выбрать даты из этого периода, по которым не было заказов в табличке "Заказы"... Буду очень благодарен за оптимальный вариант, у меня что-то сложно получается.

Сергей
...
Рейтинг: 0 / 0
Помогите, пожалуйста, написать нормальный запрос
    #32061889
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
declare
    @dt         datetime,
    @StartDate  datetime,
    @EndDate    datetime

create table #Dates (dt datetime)
set @dt = @StartDate
while @dt<=@EndDate
begin
    insert #Dates(dt)
    values (@dt)
    set @dt = @dt +  1 
end

select D.dt
    from #Dates D
    where not exists (select top  1  'X' from [Заказы] where [дата заказа] = D.dt)

drop table #Dates
...
Рейтинг: 0 / 0
Помогите, пожалуйста, написать нормальный запрос
    #32061892
Александр Спелицин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Select * From Заказы
Where [дата заказа] < дата1
and [дата заказа] > дата2
...
Рейтинг: 0 / 0
Помогите, пожалуйста, написать нормальный запрос
    #32061897
seregams
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, именно с временной таблички я и начал и подумал, что может полегче кто-нибудь что-нибудь знает.
А вот последний вариант от Александра я чего-то не понял, хотя, скорее всего, Александр не понял, чего я хочу...
А нет никакой функции, которая возвращала бы список дат между датами?
...
Рейтинг: 0 / 0
Помогите, пожалуйста, написать нормальный запрос
    #32061898
vap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и не забудьте привести даты к началу суток и к концу суток.

Select * From Заказы
Where [дата заказа] BETWEEN дата1 AND дата2
...
Рейтинг: 0 / 0
Помогите, пожалуйста, написать нормальный запрос
    #32061902
dkstranger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Select * From Заказы
Where
DateDiff(day,дата1,дата заказа)>0 and
DateDiff(day,дата заказа,дата2)>0
...
Рейтинг: 0 / 0
Помогите, пожалуйста, написать нормальный запрос
    #32061910
seregams
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да нет, я имел ввиду, не из этой таблички (это-то понятно), а вообще из системы.
Ну ладно, напишем табличку временную. Всем спасибо за помощь
...
Рейтинг: 0 / 0
Помогите, пожалуйста, написать нормальный запрос
    #32061912
Фотография Alexes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот еще вариант без временных табличек.
Главное, чтобы записей в sysobjects хватило :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
    @StartDate  datetime,
    @EndDate    datetime

select D.Dt
    from (select dateadd(dd,(select count(*) from sysobjects o2 where o2.id<o1.id),@StartDate) as Dt
                from sysobjects o1) D
    where
        D.Dt between @StartDate and @EndDate and
        not exists (select top  1  'X' from [Заказы] where [дата заказа] = D.dt)
...
Рейтинг: 0 / 0
Помогите, пожалуйста, написать нормальный запрос
    #32061947
seregams
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!!!!
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите, пожалуйста, написать нормальный запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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