Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Помогите с запросом на добавление / 3 сообщений из 3, страница 1 из 1
22.03.2018, 17:05
    #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
22.03.2018, 18:27
    #39619103
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с запросом на добавление
sqlmylove,

INSERT (...)
SELECT ... FROM

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

INSERT (...)
SELECT ... FROM

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


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


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