Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
4 / 4 / 5
Регистрация: 30.09.2013
Сообщений: 82
1

Функция подсчета из разных полей APEX

09.06.2014, 00:00. Показов 1404. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть 3 таблицы

Блюда:
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CREATE TABLE  "BLUDES" 
   (    "ID" VARCHAR2(10) NOT NULL ENABLE, 
    "B_NAME" VARCHAR2(64) NOT NULL ENABLE, 
    "B_INGRES" NUMBER, 
    "PRICE" NUMBER, 
    "IMAGE" BFILE, 
    "B_TYPE" NUMBER, 
     CONSTRAINT "BLUDES_PK" PRIMARY KEY ("ID") ENABLE
   )
/
 
CREATE OR REPLACE TRIGGER  "BI_BLUDES" 
  before INSERT ON "BLUDES"               
  FOR each ROW  
BEGIN   
  IF :NEW."ID" IS NULL THEN 
    SELECT "BLUDES_SEQ".NEXTVAL INTO :NEW."ID" FROM sys.dual; 
  END IF; 
END; 
 
/
ALTER TRIGGER  "BI_BLUDES" ENABLE
/
Ингредиенты:
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CREATE TABLE  "INGTES" 
   (    "ID" NUMBER, 
    "I_NAME" VARCHAR2(64) NOT NULL ENABLE, 
    "I_DATE" DATE NOT NULL ENABLE, 
    "I_PRICE" NUMBER(6,2) NOT NULL ENABLE, 
    "I_COUNT" NUMBER(7,3) NOT NULL ENABLE, 
    "I_TYPE" NUMBER, 
     CONSTRAINT "INGTES_PK" PRIMARY KEY ("ID") ENABLE
   )
/
 
CREATE OR REPLACE TRIGGER  "BI_INGTES" 
  before INSERT ON "INGTES"               
  FOR each ROW  
BEGIN   
  IF :NEW."ID" IS NULL THEN 
    SELECT "INGTES_SEQ".NEXTVAL INTO :NEW."ID" FROM sys.dual; 
  END IF; 
END; 
 
/
ALTER TRIGGER  "BI_INGTES" ENABLE
/
Ингредиенты для блюда
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
CREATE TABLE  "INGRES_FOR_BLUD" 
   (    "ID" NUMBER NOT NULL ENABLE, 
    "B_ID" NUMBER, 
    "I_ID" NUMBER, 
    "COUNT" NUMBER, 
     CONSTRAINT "INGRES_FOR_BLUD_PK" PRIMARY KEY ("ID") ENABLE
   )
/
 
CREATE OR REPLACE TRIGGER  "BI_INGRES_FOR_BLUD" 
  before INSERT ON "INGRES_FOR_BLUD"               
  FOR each ROW  
BEGIN   
  IF :NEW."ID" IS NULL THEN 
    SELECT "INGRES_FOR_BLUD_SEQ".NEXTVAL INTO :NEW."ID" FROM sys.dual; 
  END IF; 
END; 
 
/
ALTER TRIGGER  "BI_INGRES_FOR_BLUD" ENABLE
/
Нужно написать функцию, которая возвращает цену блюда.

Добавлено через 15 часов 37 минут
Спасиб
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.06.2014, 00:00
Ответы с готовыми решениями:

Выборка и объединение из 2 разных таблиц и 2 разных полей
Подскажите, пожалуйста, как составить запрос. Мне необходимо из 2 таблиц выбрать одинаковые...

Написать программу подсчета стоимости разговора для разных мобильных операторов
Написать программу подсчета стоимости разговора для разных мобильных операторов. Пользователь...

функция подсчёта
Здравствуйте все! Подскажите, как подсчитать (в числовом значении) сколько раз в тексте (текст...

Функция подсчета палиндромов
Написала программу, которая обрабатывает строки, но одну функцию никак не могу написать. На вход...

8
25 / 25 / 10
Регистрация: 20.09.2009
Сообщений: 110
09.06.2014, 09:41 2
нам за тебя написать эту функцию?
0
4 / 4 / 5
Регистрация: 30.09.2013
Сообщений: 82
09.06.2014, 14:46  [ТС] 3
mlc, Извините за дерзость, да.
Я просто первый раз. И вообще ничего не понятно.
Учебники читаю, но все равно не могу понять что и как(((
0
25 / 25 / 10
Регистрация: 20.09.2009
Сообщений: 110
09.06.2014, 15:12 4
maukur, ты хотя бы начни писать функцию, накидай хоть что-нибудь. А если что-то не ясно - спрашивай.

Добавлено через 3 минуты
Цитата Сообщение от maukur Посмотреть сообщение
Нужно написать функцию, которая возвращает цену блюда.
у тебя название блюда и его цена в одной таблице. Зачем тебе функция?
0
4 / 4 / 5
Регистрация: 30.09.2013
Сообщений: 82
09.06.2014, 15:37  [ТС] 5
mlc,
Мне не нужно вводить цену самого блюда, она должна сама считаться из ингредиентов
0
13 / 13 / 2
Регистрация: 31.03.2013
Сообщений: 107
09.06.2014, 15:48 6
Задача, функция принимает ид-блюда и считает стоимость блюда из ингредиентов?
0
4 / 4 / 5
Регистрация: 30.09.2013
Сообщений: 82
09.06.2014, 16:04  [ТС] 7
TopolM, Да
0
13 / 13 / 2
Регистрация: 31.03.2013
Сообщений: 107
09.06.2014, 16:34 8
Лучший ответ Сообщение было отмечено maukur как решение

Решение

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE PROC_1 (ID_BLUD IN VARCHAR2) AS 
 temp_price bludes.price%TYPE;
  CURSOR SUM_PRICE 
  SELECT SUM(ITOG)
    FROM
    (SELECT I_PRICE,"COUNT", I_PRICE *"COUNT" AS ITOG
    FROM INGTES JOIN INGRES_FOR_BLUD
        ON ( INGRES_FOR_BLUD.I_ID=INGTES.ID)
            WHERE INGRES_FOR_BLUD.ID=ID_BLUD)
BEGIN
    OPEN SUM_PRICE;
        FETCH SUM_PRICE INTO temp_price;
            CLOSE temp_price;
                dbms_output.put_line(temp_price);
END PROC_1;
Вот что-то такое, только проверьте запрос курсора который должен посчитать сумму блюда по ИД. писал по картинкам
1
4 / 4 / 5
Регистрация: 30.09.2013
Сообщений: 82
10.06.2014, 00:47  [ТС] 9
сяп
0
10.06.2014, 00:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.06.2014, 00:47
Помогаю со студенческими работами здесь

Функция подсчёта памяти
Всем привет. Подскажите пожалуйста, существует в стандартных либах, функция для подсчёта...

Функция подсчета времени
Добрый вечер. Мне нужно узнать время выполнения сортировки в миллисекундах.Почему то когда хочу...

Функция подсчета дней
Задача: Есть списки средних дневных температур в Москве за май 2017 и 2018 годов. Создайте функцию...

Функция подсчёта буквы
определить функцию для вычисления количества букв "c" в слове... Помогите пожалуйста


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

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