powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Операторы языка...
3 сообщений из 3, страница 1 из 1
Операторы языка...
    #32054489
Alex_VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я так понял, что в MSSQL можно использовать некоторые типичные операторы, имеющиеся в других языках программирования, например мне нужно организовать цикл. На VB это было бы так:
D1, D2, D - даты
rs1, rs2 - рекордсеты, точнее таблицы

D1 = "01.01.2003"
D2 = "31.12.2003"

rs1.MoveFirst
While Not rs1.EOF

D = rs1.[Date_repair]
While D <= D2
If D >= D1 Then
rs2.AddNew
rs2.ID_Eq = rs1.[ID]
rs2.[Дата] = D
rs2.[Тип] = "С"
rs2.Update
End If
D = DateAdd("d", rs1.[Средний] / 8 / rs1.[Cмены], D)
Wend
можно ли организовать подобный цикл в MSSQL,
если использовать rs1 как SELECT * FROM Оборудование,
а rs2 как SELECT * FROM Ремонты?
...
Рейтинг: 0 / 0
Операторы языка...
    #32054493
dao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В лоб - через курсоры
...
Рейтинг: 0 / 0
Операторы языка...
    #32054639
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При решении какой-то задачи Вашим первым вопросом должен быть: "А как это сделать одним запросом?"
Судя по листингу Ваша задача решается так.

insert into rs2 (rs2.ID_Eq,rs2.[Дата],rs2.[Тип])
select rs1.[ID],rs1.[Date_repair],"С"
from rs1
where D between @D1 and @D2
И выкиньте из головы прежние подходы к обработке таблиц последовательным доступом к строкам
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Операторы языка...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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