Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2018, 20:36   #1
aleksisk2
 
Регистрация: 31.05.2017
Сообщений: 4
По умолчанию Исправление запроса в oracle sql

Зарегистрировать нового клиента, который оформил заказ 10.05.2018 года.
Необходимо выполнить химчистку салона и полировку фар. Определить
предварительную стоимость этого заказа. Какие таблицы будут задействованы в
этой транзакции? - я это всё сделал

но у меня этот заказ выводится так, что он состоит из двух услуг и для каждой отдельно пишется предварительная стоимость


Код:
INSERT INTO KLIENT VALUES ((SELECT MAX(ID_K)+1 FROM KLIENT), 'Бережной Дмитрий Анатольевич', 89316893325); 
SELECT*FROM KLIENT; 
INSERT INTO ZAKAZ VALUES ((SELECT MAX(ID_Z)+1 FROM ZAKAZ), 3, '10.05.18', '23.05.18' , 
(SELECT MAX(ID_K) FROM KLIENT), 3, (SELECT (price/100)*30 FROM USLUGI WHERE ID_U=3 )); 
INSERT INTO ZAKAZ_USLUGI VALUES ((SELECT MAX(ID_Z) FROM ZAKAZ), 3); 

INSERT INTO ZAKAZ VALUES ((SELECT MAX(ID_Z) FROM ZAKAZ), 6, '10.05.18', '15.05.18', 
(SELECT MAX(ID_K) FROM KLIENT), 3, (SELECT (price/100)*30 FROM USLUGI WHERE ID_U=6 )); 
INSERT INTO ZAKAZ_USLUGI VALUES ((SELECT MAX(ID_Z) FROM ZAKAZ), 6); 
SELECT*FROM ZAKAZ; 
SELECT*FROM ZAKAZ_USLUGI; 

--предварительная стоимость по каждой услуге отдельно 
SELECT DISTINCT KLIENT.FIO, USLUGI.names, ZAKAZ.DATE_1, ZAKAZ.predvar_stoim 
FROM KLIENT, USLUGI, ZAKAZ 
WHERE KLIENT.ID_K= (SELECT MAX(ID_K) FROM KLIENT) 
AND ZAKAZ.ID_Z= (SELECT MAX(ID_Z) FROM ZAKAZ WHERE USLUGI.ID_U=3 ) 
AND ZAKAZ.predvar_stoim IN (SELECT predvar_stoim FROM ZAKAZ WHERE ID_U=3) 
UNION 
SELECT DISTINCT KLIENT.FIO, USLUGI.names, ZAKAZ.DATE_1, ZAKAZ.predvar_stoim 
FROM KLIENT, USLUGI, ZAKAZ 
WHERE KLIENT.ID_K= (SELECT MAX(ID_K) FROM KLIENT) 
AND ZAKAZ.ID_Z= (SELECT MAX(ID_Z) FROM ZAKAZ WHERE USLUGI.ID_U=6 ) 
AND ZAKAZ.predvar_stoim IN ((SELECT predvar_stoim FROM ZAKAZ WHERE ID_U=6)+(SELECT predvar_stoim FROM ZAKAZ WHERE ID_U=3));


мне нужно, чтобы предварительная стоимость выводилась из двух этих предварительных стоимостей(сложить две суммы как на скрине и вывести в одну)
Изображения
Тип файла: jpg 242.jpg (92.7 Кб, 121 просмотров)

Последний раз редактировалось aleksisk2; 30.05.2018 в 21:42.
aleksisk2 вне форума Ответить с цитированием
Старый 30.05.2018, 21:12   #2
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Почему код в теги не берете? неудобно читать. Зачем используете UNION непонятно. и еще бы структуру таблиц бы глянуть, не очень охота ее выуживать из запроса. Чем больше инфы покажите тем больше шансов что вам помогут.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..
Stanislav вне форума Ответить с цитированием
Старый 30.05.2018, 21:20   #3
aleksisk2
 
Регистрация: 31.05.2017
Сообщений: 4
По умолчанию

Что можно использовать кроме union?
Вложения
Тип файла: rar liza.rar (2.6 Кб, 6 просмотров)
aleksisk2 вне форума Ответить с цитированием
Старый 30.05.2018, 21:29   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

арм многопользовательский? Если да, то выбрось подход с max(id) на помойку
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 30.05.2018, 21:45   #5
aleksisk2
 
Регистрация: 31.05.2017
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Stanislav Посмотреть сообщение
Почему код в теги не берете? неудобно читать. Зачем используете UNION непонятно. и еще бы структуру таблиц бы глянуть, не очень охота ее выуживать из запроса. Чем больше инфы покажите тем больше шансов что вам помогут.
Что использовать в замену union
Вложения
Тип файла: rar liza.rar (2.6 Кб, 5 просмотров)
aleksisk2 вне форума Ответить с цитированием
Старый 30.05.2018, 22:12   #6
Stanislav
Квадрокоптерист
Участник клуба Подтвердите свой е-майл
 
Регистрация: 29.09.2007
Сообщений: 1,824
По умолчанию

Цитата:
Сообщение от aleksisk2 Посмотреть сообщение
Что использовать в замену union
Можно не писать вопрос дважды это не чат. Если не ответили сразу, значит. Или я забил или не прочитал ещё. В таблице заказ должен быть id клиента который сделал заказ а значит можно вытащить все заказы конкретного клиента за конкретную дату с конкретными заказами которые он сделал. А сделать это можно через left join например.
Я часть той силы, что вечно хочет зла, но вечно совершает благо..

Последний раз редактировалось Stanislav; 30.05.2018 в 22:15.
Stanislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как получить sql create код запроса существующего задания ms sql server? R_G SQL, базы данных 0 30.06.2016 12:35
Как уменьшить время выполнения t-sql запроса (оптимизировать) к Oracle? R_G SQL, базы данных 2 08.05.2016 19:52
Oracle. PL/SQL Dev. Выполнить много SQL'файлов по-порядку в 1 клик Человек_Борща SQL, базы данных 2 11.12.2014 12:12
Удаление строки с помощью SQL запроса (Query1.SQL.ADD('Delete....')) Schutze Помощь студентам 6 29.11.2009 22:15