Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 12
1

Ошибка при создании процедуры

07.01.2014, 23:36. Показов 1044. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пишу процедуру, которая расчитывает мощность сплит-системы и заносит это значение в одно из полей таблицы. Текст процедуры такой:
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
  CREATE PROCEDURE CAB
AS
  
    UPDATE CABINETS SET SPLIT_Q=(SELECT C.ID,H.SQUARES*H.CEILING_HEIGHT*
    (CASE WHEN C.RASPOLOJENIE='ЮГ' THEN 40
          WHEN C.RASPOLOJENIE='СЕВЕР' THEN 30
          ELSE 35 END)+
    (SELECT COUNT(*) FROM COMPUTERS M WHERE M.ID_CAB=C.ID)*480
  FROM cabinets C,HARAKTERISTIKA_KABINETA H
  WHERE H.ID=C.ID_HARAKTERISTIKI)
Привыполнении выдаётся ошибка: В списке выбора можно указать только одно выражение, если вложенный запрос не предварен EXISTS.

Сам запрос отдельно от процедуры работает. Помогите разобраться и исправить о шибку.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.01.2014, 23:36
Ответы с готовыми решениями:

Must declare the scalar variable ошибка при создании процедуры
Создаю процедуру в базе на SQL Server 2016: CREATE PROCEDURE dbo.PutData @RetCode int out ...

Ошибка при создании связи
Нахожусь в диаграмме БД, создаю связь между таблицами от ПК к ВК, после пытаюсь сохранить, но...

Ошибка при создании запроса
Здравствуйте,создаю таблицу CREATE TABLE CLIENT (ID_CLIENT INTEGER PRIMARY KEY CHECK...

Ошибка при создании базы
Сообщение 1802, уровень 16, состояние 4, строка 1 Ошибка операции CREATE DATABASE. Некоторые из...

4
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,269
08.01.2014, 13:12 2
У Вас Oracle что ли?
Как можно присвоить SPLIT_Q два выражения одновременно?
Может, в Oracle можно?...
0
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 12
08.01.2014, 15:39  [ТС] 3
Нет, в ms sql server. А где я там присваиваю одновременно два выражения, что-то не пойму?
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,269
08.01.2014, 16:06 4
T-SQL
1
SET SPLIT_Q=(SELECT C.ID,H.SQUARES*H.CEILING_HEIGHT*....)
Два выражения, разделённые запятой видите?
0
0 / 0 / 0
Регистрация: 22.12.2013
Сообщений: 12
08.01.2014, 16:41  [ТС] 5
А, да) Я с.id убрала уже, но не всё равно не могу сделать так, что бы высчитывалось только одно значение. Запрос высчитывает значения по всем строкам таблицы.

Добавлено через 29 минут
Вот сделала так, только теперь мне во все строки записывает значения, которые вычисленны для @id

Oracle 11 SQL
1
2
3
4
5
6
7
8
CREATE PROCEDURE pr_cabin (@id int)
          AS BEGIN
          UPDATE CABINETS SET SPLIT_Q=(SELECT HARAKTERISTIKA_KABINETA.CEILING_HEIGHT*HARAKTERISTIKA_KABINETA.SQUARES*
 (CASE WHEN CABINETS.RASPOLOJENIE='ЮГ' THEN 40
          WHEN CABINETS.RASPOLOJENIE='СЕВЕР' THEN 30
          ELSE 35 END)+(SELECT COUNT(*) FROM computers WHERE COMPUTERS.ID_CAB=CABINETS.ID)*130
          FROM cabinets, HARAKTERISTIKA_KABINETA, COMPUTERS
          WHERE HARAKTERISTIKA_KABINETA.ID=CABINETS.ID_HARAKTERISTIKI AND COMPUTERS.ID_CAB=CABINETS.ID AND CABINETS.ID=@id) endi.ID_CAB=COMPUTERS.ID_CAB)
0
08.01.2014, 16:41
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.01.2014, 16:41
Помогаю со студенческими работами здесь

Ошибка при создании таблиц
Всем привет, имею такой запрос (выполнял его несколько раз, но потом базу грохал) create database...

Ошибка при создании базы
Добрый день. Скажите,из-за чего при создании базы возникает вот такая ошибка:

Ошибка при создании таблицы
Вот такая вот ошибка! Помогите пожалуйста

Ошибка при создании копии таблицы
Пытаюсь сделать копию таблицы events, с помощью выражения: insert into events1 select * from...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru