Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 30.05.2018, 21:36   #1
aleksisk2
 
Регистрация: 31.05.2017
Сообщений: 4
Репутация: 10
По умолчанию Исправление запроса в 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 Кб, 0 просмотров)

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

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

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

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

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

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

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


17:47.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru