powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Подсчет суммы нескольких строк и вывод данных в другой репорт
25 сообщений из 40, страница 1 из 2
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37558427
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток. У меня такая проблема. Я потихоньку изучаю апекс.
Создала базу данных небольшую содержащую инфу для торговой фирмы.

Значит, в ней имеется ТАБ с заказом и созданием нового заказа. к ней относится таблица Заказы, Позиции Заказа и Товары. Таблица "Позиции заказа" содержит в себе такие строки: ID_POZICYI, ID_ZAKAZA (номер заказа из таблицы "Заказы" с подстановкой), ID_TOVARA (номер товара из таблицы "товары" с подстановкой наименования товара), KOLICHESTVO и CENA_POZICYI.

Я создаю новый заказ, который содержит в себе много позиций (а не одну).
Подскажите, как мне создать репорт, в котором есть строки из таблицы "позиции заказа". Она содержит в себе строки (см. картинку) и подсчитать сумму позиции и общую сумму заказа, а затем забить данные о номере заказа, номере клиента (с подстановкой имени), стоимостью (подсчитанной в репорт позиции заказа), дата принятия (созданная автоматически на сегодняшнее число), и номер сотрудника (с подстановкой фио сотрудника).
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37558437
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а в дальнейшем это переходит вот типа в такой репорт (см.рисунок)

Ребята буду вам очень благодарна, если поможете))
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37559268
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я сделала немного по-другому, создала корзину в которую складываю товар.
подскажите как эти данные переместить в таблицу заказы, пожалуйста ребята.
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560148
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я создала процесс такой по аналогии из демо приложения, но у меня выдает ошибку:
авторORA-06550: line 48, column 74: PLS-00302: component 'C004' must be declared ORA-06550: line 48, column 74: PL/SQL: ORA-00984: column not allowed here ORA-06550: line 46, column 3: PL/SQL: SQL Statement ignored

Код: plaintext
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.
declare
  l_id_zakaza number;
  l_id_klienta varchar2(30) := :P8_id_klienta;
  l_id_sotrudnika number;

begin
if :P8_KLIENT_OPTION = 'NEW' then
  l_id_klienta := :P11_id_klienta;
end if;

select id_sotrudnika into l_id_sotrudnika from sotrudniki where fio_sotrudnika = :APP_USER;
select "ZAKAZY_SEQ".nextval into l_ID_ZAKAZA from dual;

insert into zakazy values(l_id_zakaza, l_id_klienta, null, sysdate, null, l_id_sotrudnika);
commit;

for x in (select c001, sum(c002) c002 from apex_collections
  where collection_name = 'MYTOVAR' group by c001)
loop
  insert into pozicyi values
    (null, l_id_zakaza, to_number(x.c001), to_number(x.c002),to_number(x.c004));
end loop;

apex_collection.truncate_collection(p_collection_name => 'MYTOVAR');

:P10_ID_ZAKAZA := l_id_zakaza;

end;
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560222
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
процесс я исправила, но после нажатия разместить заказ он не выводит меня на страницу со сводкой заказа. Пишет на этой же странице нет данных...
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560604
__s!s!s___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nasql,

Поясните, откуда взялось это: to_number(x.c004));
В выражении:
insert into pozicyi values
(null, l_id_zakaza, to_number(x.c001), to_number(x.c002),to_number(x.c004));

По-моему ошибка здесь.


Настоятельно рекомендую начать с уверенного владения SQL, затем PL/SQL и только потом перейти к APEX.
У Вас явные пробелы в SQL.

В сообщении об ошибке указано обычным английским языком, что компонент C004 не объявлен, выражение SQL проигнорировано.


Выражение:
Код: plaintext
1.
2.
3.
4.
5.
6.
for x in (select c001, sum(c002) c002 from apex_collections
  where collection_name = 'MYTOVAR' group by c001)
loop
  insert into pozicyi values
    (null, l_id_zakaza, to_number(x.c001), to_number(x.c002),to_number(x.c004));
end loop;



Предлагаю переписать в виде:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
INSERT INTO pozicyi VALUES (<перечислить список полей в явном виде>)
SELECT
  NULL AS field_1,
  l_id_zakaza AS field_2, 
  to_number(x.c001) AS field_x, 
  to_number(sum(c002)) AS field_xx,
  to_number(x.c004) AS field_xxx  -- здесь явная ошибка. Я не знаю зачем это
FROM apex_collections
WHERE collection_name = 'MYTOVAR' 
GROUP BY c001;
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560830
__s!s!s___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nasql,

Для ответа на исходный вопрос Вам нужно создать отчет (Report или Interactive Report) на основе SQL запроса примерно такого вида:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT
  <Заказы>.<Номер заказа>,
  <Клиенты>.<ФИО Клиента>,
  SUM(<Позиции заказа>.<Кол-во> * <Позиции заказа>.<Цена>) AS <Стоимость>,
  COUNT(*) AS <Кол-во строк заказа>,
  <Заказы>.<Дата принятия>,
  <Заказы>.<Дата выполнения>,
  <Сотрудники>.<Сотрудник>
FROM <Заказы>
LEFT JOIN <Позиции заказа> ON <Позиции заказа>.<Номер заказа> = <Заказы>.<Номер заказа>
LEFT JOIN <Клиенты> ON <Клиенты>.<Код клиента> = <Заказы>.<Код клиента>
LEFT JOIN <Сотрудники> ON <Сотрудники>.<Код сотрудника> = <Заказы>.<Код сотрудника>
GROUP BY <Заказы>.<Номер заказа>,
         <Клиенты>.<ФИО Клиента>,
         <Заказы>.<Дата принятия>,
         <Заказы>.<Дата выполнения>,
         <Сотрудники>.<Сотрудник>
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560881
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
исправила
Код: plaintext
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.
declare
  l_id_zakaza number;
  l_id_klienta varchar2(30) := :P8_id_klienta;
  l_id_sotrudnika number;
begin
if :P8_KLIENT_OPTION = 'NEW' then
  l_id_klienta := :P11_id_klienta;
end if;
select id_sotrudnika into l_id_sotrudnika from sotrudniki where fio_sotrudnika = :APP_USER;
select "ZAKAZY_SEQ".nextval into l_ID_ZAKAZA from dual;
insert into zakazy values(l_id_zakaza, l_id_klienta, null, sysdate, null, l_id_sotrudnika);
commit;
INSERT INTO pozicyi VALUES (id_pozicyi, id_zakaza, id_tovara, kolichestvo, cena pozicyi);
SELECT
  NULL AS field_1,
  l_id_zakaza AS field_2, 
  to_number(x.c001) AS field_3, 
  to_number(sum(c002)) AS field_4,
  to_number(x.c003) AS field_5
FROM apex_collections
WHERE collection_name = 'MYTOVAR' 
GROUP BY c001;
apex_collection.truncate_collection(p_collection_name => 'MYTOVAR');
:P10_ID_ZAKAZA := l_id_zakaza;
end;



но теперь ругается на запятую и
авторORA-06550: line 17, column 81: PL/SQL: ORA-00917: missing comma ORA-06550: line 17, column 1: PL/SQL: SQL Statement ignored
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560897
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__s!s!s___Nasql,

Для ответа на исходный вопрос Вам нужно создать отчет (Report или Interactive Report) на основе SQL запроса примерно такого вида:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SELECT
  <Заказы>.<Номер заказа>,
  <Клиенты>.<ФИО Клиента>,
  SUM(<Позиции заказа>.<Кол-во> * <Позиции заказа>.<Цена>) AS <Стоимость>,
  COUNT(*) AS <Кол-во строк заказа>,
  <Заказы>.<Дата принятия>,
  <Заказы>.<Дата выполнения>,
  <Сотрудники>.<Сотрудник>
FROM <Заказы>
LEFT JOIN <Позиции заказа> ON <Позиции заказа>.<Номер заказа> = <Заказы>.<Номер заказа>
LEFT JOIN <Клиенты> ON <Клиенты>.<Код клиента> = <Заказы>.<Код клиента>
LEFT JOIN <Сотрудники> ON <Сотрудники>.<Код сотрудника> = <Заказы>.<Код сотрудника>
GROUP BY <Заказы>.<Номер заказа>,
         <Клиенты>.<ФИО Клиента>,
         <Заказы>.<Дата принятия>,
         <Заказы>.<Дата выполнения>,
         <Сотрудники>.<Сотрудник>



от этой схемы я решила отказаться, ее яхочу использоать в режиме редактирования
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560903
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я могу скинуть всю схему ТАБа ЗАКАЗЫ вместе с опциями которые в ней есть
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560932
__s!s!s___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nasqlисправила

но теперь ругается на запятую и
авторORA-06550: line 17, column 81: PL/SQL: ORA-00917: missing comma ORA-06550: line 17, column 1: PL/SQL: SQL Statement ignored

Конечно будет ругаться! И еще не менее витиевато!
Помимо того, что Вы не подумали над моим выражением, Вы добавили в него еще немного своих ошибок.

Все же освоение SQL хотя бы на базовом уровне совершенно необходимо. У Вас его нет.

"Отчет в режиме редактирования" - это типичный пример взаимоисключающих параграфов. Пожалуйста, определитесь: либо "Отчет", либо "Редактирование".
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560937
__s!s!s___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nasqlя могу скинуть всю схему ТАБа ЗАКАЗЫ вместе с опциями которые в ней есть

Ваша фотография в купальном костюме обрадует меня гораздо больше.
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560951
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя нет, данный репорт у меня есть только немного в другом виде

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select 
"ZAKAZY"."ID_ZAKAZA",
"KLIENTY"."FIO_KLIENTA",
(select count(*) from POZICYI where "POZICYI".ID_ZAKAZA = ZAKAZY.ID_ZAKAZA) "KOLICHESTVO_POZ",
"ZAKAZY"."STOIMOST",
"ZAKAZY"."DATA_PRIN",
"ZAKAZY"."DATA_VYP",
"SOTRUDNIKI"."FIO_SOTRUDNIKA"
 from  
   ZAKAZY,  
   SOTRUDNIKI,  
   KLIENTY 
 where  
   ZAKAZY.id_klienta = KLIENTY.id_klienta 
   and ZAKAZY.id_sotrudnika = ZAKAZY.id_sotrudnika 



лучше сделать как у вас? у меня до этого было сделано как у вас
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560956
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__s!s!s___Nasqlя могу скинуть всю схему ТАБа ЗАКАЗЫ вместе с опциями которые в ней есть

Ваша фотография в купальном костюме обрадует меня гораздо больше.

)))
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560962
__s!s!s___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nasql,

Нет, я не могу угадывать схему базы данных. Получилось очень похоже, но у Вас другой запрос.
Важный момент - сумма заказа проставлена числом (или прописью - не столь важно) и не имеет никакой связи с количеством и стоимостью по строкам заказа. Наверное, так и было задумано.
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560972
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
__s!s!s___Nasqlисправила

но теперь ругается на запятую и
пропущено...


Конечно будет ругаться! И еще не менее витиевато!
Помимо того, что Вы не подумали над моим выражением, Вы добавили в него еще немного своих ошибок.

Все же освоение SQL хотя бы на базовом уровне совершенно необходимо. У Вас его нет.

"Отчет в режиме редактирования" - это типичный пример взаимоисключающих параграфов. Пожалуйста, определитесь: либо "Отчет", либо "Редактирование".

режим редактирования будет сделан позже, а сейчас мне необходимо после нажатия кнопки "разместить заказ" и выполнения процесса "разместить заказ" чтобы он просто вывел мне детали заказа с данными вот такими:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
begin
for x in (select FIO_KLIENTA, ORGANIZACIYA, ADRES, INN, TELEFON, EMAIL from KLIENTY, ZAKAZY
where KLIENTY.ID_KLIENTA = ZAKAZY.ID_KLIENTA and ZAKAZY.ID_ZAKAZA = :P10_ID_ZAKAZA)
loop
  htp.p('<span style="font-size:16px;font-weight:bold;">ORDER #' || :P10_ID_ZAKAZA || '</span>
');
  htp.p(htf.escape_sc(x.FIO_KLIENTA) || '
');
  htp.p(htf.escape_sc(x.ORGANIZACIYA) || ', ' || x.ADRES || '  ' || htf.escape_sc(x.TELEFON) || '

');
end loop;
end;



согласна, по поводу освоения базовых знаний SQL, но у меня на все про все было всего 2 недели, и последняя истекает((((
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560976
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
репорт с заказами сделала как у вас, теперь как сделать остальное?((
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37560986
__s!s!s___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nasqlсогласна, по поводу освоения базовых знаний SQL, но у меня на все про все было всего 2 недели, и последняя истекает((((

Не успеете. И даже фотография вовсе без купального костюма не исправит положение.
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37561005
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
так выглядит страница уже с выбранными тварами после которой я жму разместить заказ
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37561008
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или как с этой страницы вбить данные в заказы и все на этом?
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37561010
__s!s!s___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nasql,

Не-не-не! Это явно не является Вашей фотографией вовсе без купального костюма!
И заменоя явиться не может.

Что это за обострение? Где это студенты судорожно изучают Apex и всю ветку загадили?
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37561032
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все когда-то с чего-то начинали, после сдачи этой работы, у меня будет достаточно времени изучить sql и apex. а сейчас мне просто необходима помощь. Я изучала его всего две недели, и то по видеоурокам и беглым примерам в интернете...
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37561034
__s!s!s___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nasql,

Кстати, как бы это получить бекап всего приложения. Уж очень интересно оно у Вас выглядит.
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37561046
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
declare
	TOVAR_NAZVANIE varchar2(255);
	TOVAR_CENA number;
begin
if apex_collection.collection_exists('MYTOVAR')=false then
	APEX_COLLECTION.CREATE_COLLECTION('MYTOVAR');
end if;
	for i in 1..apex_application.g_f01.count
 loop
	select NAZVANIE, CENA INTO TOVAR_NAZVANIE, TOVAR_CENA FROM TOVARY
      WHERE ID_TOVARA=apex_application.g_f01(i);
	apex_collection.add_member('MYTOVAR', TOVAR_NAZVANIE, TOVAR_CENA);
end loop;

end;



это код который позволяет мне закинуть товары в корзину
...
Рейтинг: 0 / 0
Подсчет суммы нескольких строк и вывод данных в другой репорт
    #37561056
Nasql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это код подсчета стоимости заказа в отдельном region
Код: plaintext
1.
2.
3.
select sum(c002)
 from apex_collections
where collection_name='MYTOVAR'
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Подсчет суммы нескольких строк и вывод данных в другой репорт
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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