powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом на добавление
3 сообщений из 3, страница 1 из 1
Помогите с запросом на добавление
    #39619046
sqlmylove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос, который надо откорректировать, так чтобы он работал без упора на определенный параметр (@PARAMETR nvarchar(25)= 'Плотность тока'), тоесть добавление происходило для каждого параметра, сказали что можно сделать с помощью цикла не используя курсоры...
Код: 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.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
	-- Объявление переменных
DECLARE @PROIZVODSTVO nvarchar(25)= 'Цех сварки'
DECLARE @OBORUD nvarchar(25)= 'Сварочный робот №1'
DECLARE @PARAMETR nvarchar(25)= 'Плотность тока'
DECLARE @PART nvarchar(25)= 'PART10'
	/* Проверка партии на существование*/
IF NOT EXISTS (
	SELECT * 
		FROM Batch, Equipment, Factory  
		WHERE BatchName=@PART 
			AND EquipmentName=@OBORUD
			AND FactoryName=@PROIZVODSTVO
			)
BEGIN
	/*Добавление новой партии*/
INSERT INTO Batch (EquipmentId, BatchName) 
	SELECT EquipmentId,@PART 
			FROM Equipment, Factory
			WHERE EquipmentName=@OBORUD 
				AND Factory.FactoryName=@PROIZVODSTVO 
				AND Equipment.FactoryId = Factory.FactoryId
	/*Добавление предыдущего значения*/
INSERT INTO [Values] (BatchId, ParameterId, [Value]) 
	VALUES(
		(SELECT TOP 1 BatchId
			FROM Parameter, Batch, Equipment, Factory
			WHERE BatchName=@PART AND EquipmentName=@OBORUD 
				AND FactoryName=@PROIZVODSTVO AND ParameterName=@PARAMETR
				AND Batch.EquipmentId=Equipment.EquipmentId), 
		(SELECT Parameter.ParameterId 
			FROM Parameter, Batch, Equipment, Factory, [Values]
			WHERE BatchName=@PART AND EquipmentName=@OBORUD 
				AND FactoryName=@PROIZVODSTVO
				AND Parameter.EquipmentId=Equipment.EquipmentId
				AND Batch.BatchId=[Values].BatchId),
		(SELECT TOP 1 [Value]
			FROM [Values], Batch, Parameter, Equipment, Factory
			WHERE ParameterName=@PARAMETR AND EquipmentName=@OBORUD 
				AND FactoryName=@PROIZVODSTVO AND [Values].ParameterId=Parameter.ParameterId
				AND [Values].BatchId=Batch.BatchId
			ORDER BY [Values].[RecordTime] DESC))
END
ELSE -- Сообщение о существовании партии
BEGIN 
SELECT 'Партия уже существует' 
END

...
Рейтинг: 0 / 0
Помогите с запросом на добавление
    #39619103
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sqlmylove,

INSERT (...)
SELECT ... FROM

см справку по INSERT
...
Рейтинг: 0 / 0
Помогите с запросом на добавление
    #39619107
sqlmylove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владислав Колосовsqlmylove,

INSERT (...)
SELECT ... FROM

см справку по INSERT


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


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