powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Вывод функции
14 сообщений из 14, страница 1 из 1
Вывод функции
    #39170828
Kat1619
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT a.idDish, a.NameOfDish, -- базовое блюдо
b.idDish, b.NameOfDish -- наиболее часто сопутствующее блюдо
FROM Dish a,
Dish b
WHERE b.idDish = frend_dish(a.idDish,'yy', to_date('201601','yyyymm'));

подскажите, изменить на PL/SQL Function Body returning SQL Query чтобы вставить в отчет?


create or replace FUNCTION frend_dish(pDishId IN NUMBER,
fmt IN VARCHAR2,
pBaseDate IN DATE DEFAULT trunc(sysdate))
RETURN NUMBER
IS
vDishId NUMBER := null;
BEGIN
FOR vv IN (
SELECT idDish FROM (
SELECT idDish, row_number() OVER (ORDER BY cnt DESC) nn
FROM (
SELECT w.idDish, SUM(w.numberr) cnt
FROM Zakaz z,
WhatToZakaz w,
WhatToZakaz b
WHERE w.idZakaz = z.idZakaz
AND b.idZakaz = z.idZakaz
AND w.idDish <> pDishId
AND b.iddish = pDishId
AND trunc(z.data, fmt) = trunc(pBaseDate, fmt)
GROUP BY w.idDish
)) WHERE nn=1)
LOOP
vDishId:=vv.idDish;
END LOOP;
RETURN vDishId;
END;
...
Рейтинг: 0 / 0
Вывод функции
    #39170852
Vladml
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если имеется в виду Standart report на основе функции, то функция возвращает текст запроса
begin
return 'select * from emp';
end;
...
Рейтинг: 0 / 0
Вывод функции
    #39170885
Kat1619
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladml,

дело в том,что в функции нет названия блюд, а только их id, поэтому нужно селектом вывести названия,а само действие из функции.
...
Рейтинг: 0 / 0
Вывод функции
    #39170890
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kat1619,
- выкинуть курсор
- взять запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
SELECT idDish FROM (
SELECT idDish, row_number() OVER (ORDER BY cnt DESC) nn
FROM (
SELECT w.idDish, SUM(w.numberr) cnt
FROM Zakaz z,
WhatToZakaz w,
WhatToZakaz b
WHERE w.idZakaz = z.idZakaz
AND b.idZakaz = z.idZakaz
AND w.idDish <> pDishId
AND b.iddish = pDishId
AND trunc(z.data, fmt) = trunc(pBaseDate, fmt)
GROUP BY w.idDish


- использовать его как подзапрос (поиск) и за JOIN'ить его с запроса по названиям блюд.
- т.е. функция тут не нужна. Если не умеете писать запросы - в форум Оракла
...
Рейтинг: 0 / 0
Вывод функции
    #39170891
Kat1619
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,
в вашем запросе ошибка, SQL command not properly ended
дело в том,что мне именно из функции вытащить результат надо в отчет
...
Рейтинг: 0 / 0
Вывод функции
    #39171027
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kat1619что мне именно из функции
Знаете анекдот? - "Вам шашечки или ехать"?
Если вы сами не решаете на чём делать отчет, то позовите кто решает.
Удачи!
...
Рейтинг: 0 / 0
Вывод функции
    #39171042
Kat1619
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

в смысле не решаю? я конкретно поставила задачу, если нечем помочь или не понимаете моего вопроса, то можно уточнить? я учусь и прошу помощи или все рождаются гениями? + к вашей самооценки, - к воспитанию.
...
Рейтинг: 0 / 0
Вывод функции
    #39171046
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kat1619я конкретно поставила задачу
ну, а если постановка не верная?
У меня мозг отказывается решать глупые задачи. Только за деньги.
...
Рейтинг: 0 / 0
Вывод функции
    #39171048
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kat1619или не понимаете моего вопроса, то можно уточнить?
уточняйте что я выше не так написал. Зачем вам функция?
А у вас пошёл трёп по воспитанию.
...
Рейтинг: 0 / 0
Вывод функции
    #39171050
Kat1619
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

потому что у меня поставлено задание такое, ставила не я, а преподаватель , потому "зачем", "это глупо", "не оптимально", не моя задача отвечать, "все претензии к производителю".
Стоит конкретная задача, иными словами:"создать функцию нахождения блюда и блюдо,которое чаще всего с ним берут и вывести результат в classic report"
...
Рейтинг: 0 / 0
Вывод функции
    #39171051
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kat1619ставила не я, а преподаватель
бывает. Удачи Вам!
...
Рейтинг: 0 / 0
Вывод функции
    #39171075
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kat1619Стоит конкретная задача,
А может нужно сделать pipelined функцию которая возвращает результат а не текст запроса ?
...
Рейтинг: 0 / 0
Вывод функции
    #39171085
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Casufi,

По-моему задача четко стоит. в стандартном репорте не нужна функция, просто тупо в запросе испольpовать функцию, типа
Код: plsql
1.
select Основное_Блюдо, my_function(основное_блюда)  from блюда;
...
Рейтинг: 0 / 0
Вывод функции
    #39171106
Kat1619
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

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


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