powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / автозаполнение таблицы
6 сообщений из 6, страница 1 из 1
автозаполнение таблицы
    #39962373
harukato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите реализовать логику к автозаполнению, когда выбирается случайный грызун (id_patient) и случайный врач (id_doctor), а в зависимости от врача выбиралась процедура (id_servise) или же выбирался случайный грызун для него выбирался один врач нужный и случайная процедура.
помимо грызунов в таблице пациентов есть другие животные.
...
Рейтинг: 0 / 0
автозаполнение таблицы
    #39962386
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harukato,

Тут подфорум по MySQL. Извините, но мы грызунов не лечим.

Показывайте DDL таблиц, пример исходных данных и желаемого результата на этих данных.
...
Рейтинг: 0 / 0
автозаполнение таблицы
    #39962398
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harukato,

Кстати, у вас точно MySQL?
...
Рейтинг: 0 / 0
автозаполнение таблицы
    #39962407
harukato
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,
конечно
скажите пожалуйста конкретнее, что вам скинуть, я просто что то сегодня сильно затупливаю. вообще я написала автозаполнение, но преподавателю не понравилось и он мне все пишет "по прежнему не объясняется логика автозаполнения. какие поля связаны и как?"
я оставлю вам тут свой вариант, посмотрите его пожалуйста, может быть там нужно что то совсем немного изменить

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
USE [vetklinika]
--добавление записей в таблицу Zapis 
--объявление переменных 
DECLARE @n int = 1
DECLARE @Data date
DECLARE @Time time
DECLARE @id_patient int
DECLARE @id_servise int 
DECLARE @id_doctor int
DECLARE @dd smallint
DECLARE @mm smallint
DECLARE @yy smallint
--запускаем цикл WHILE, который будет работать пока n< "заданное число"
WHILE @n<10
BEGIN -- начало цикла 

		SET @dd = Round(RAND()*31,0) --присваиваем рандомное значение переменной dd для получения рандомной даты
		SET @mm = Round(RAND()*12,0) --присваиваем рандомное значение переменной mm для получения рандомной даты
		IF @MM = 2 SET @dd = Round(RAND()*28,0)—проверяем с помощью оператора иф, какой месяц сгенерировался и если это февраль, то генерируем для него 28 дней
		SET @yy = 2020 --присваение переменной года 
	    SET @Data = CAST(LTRIM(STR(@mm))+'-'+LTRIM(STR(@dd))+'-'+LTRIM(STR(@yy))as date); --присваиваем рандомное значение переменной Data
		SET @Time = DATEADD(MINUTE, FLOOR(RAND() * 1140), '08:00:00'); --присваиваем рандомное значение переменной Time
        SET @id_servise = Round (Rand() * 11 + 1,0 ) --присваиваем рандомное значение переменной id_servise
        SET @id_patient = Round (Rand() * 5 + 1,0 ) --присваиваем рандомное значение переменной id_patient
        SET @id_doctor = Round (Rand() * 8 + 1,0 ) --присваиваем рандомное значение переменной id_doctor

-- с помощью команды INSERT INTO вставляем все переменные в соответствующие столбцы таблицы и получаем новую запись
INSERT INTO Zapis (Data, Time, id_servise, id_patient,  id_doctor )
     VALUES (@Data, @Time, @id_servise, @id_patient, @id_doctor )
-- увеличиваем счетчик
SET @n=@n+1

END
...
Рейтинг: 0 / 0
автозаполнение таблицы
    #39962448
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это НЕ MySQL!!!

Это (Microsoft) SQL Server.
...
Рейтинг: 0 / 0
автозаполнение таблицы
    #39962463
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
harukato
Код: sql
1.
2.
3.
        SET @id_servise = Round (Rand() * 11 + 1,0 ) --присваиваем рандомное значение переменной id_servise
        SET @id_patient = Round (Rand() * 5 + 1,0 ) --присваиваем рандомное значение переменной id_patient
        SET @id_doctor = Round (Rand() * 8 + 1,0 ) --присваиваем рандомное значение переменной id_doctor

Подозреваю, что косяк тут.
Поля заполняются случайными значениями, а должны теми, которые есть в соответствующих таблицах.


harukato
Код: sql
1.
IF @MM = 2 SET @dd = Round(RAND()*28,0)

т.е. 31 апреля не смущает?

Модератор: Тема перенесена из форума "MySQL".
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / автозаполнение таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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