Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите с запросом на добавление  [new]
sqlmylove
Member

Откуда:
Сообщений: 2
Есть запрос, который надо откорректировать, так чтобы он работал без упора на определенный параметр (@PARAMETR nvarchar(25)= 'Плотность тока'), тоесть добавление происходило для каждого параметра, сказали что можно сделать с помощью цикла не используя курсоры...
+
	-- Объявление переменных
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


К сообщению приложен файл. Размер - 82Kb
22 мар 18, 17:05    [21278387]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом на добавление  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7780
sqlmylove,

INSERT (...)
SELECT ... FROM

см справку по INSERT
22 мар 18, 18:27    [21278693]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом на добавление  [new]
sqlmylove
Member

Откуда:
Сообщений: 2
Владислав Колосов
sqlmylove,

INSERT (...)
SELECT ... FROM

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



not bad, not bad...
22 мар 18, 18:36    [21278701]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить