powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Интересная задачка с http://sql-ex.ru
10 сообщений из 10, страница 1 из 1
Интересная задачка с http://sql-ex.ru
    #39380862
Добавить в таблицу PC те модели ПК из Product, которые отсутствуют в таблице PC.
При этом модели должны иметь следующие характеристики:
1. Код равен номеру модели плюс максимальный код, который был до вставки.
2. Скорость, объем памяти и диска, а также скорость CD должны иметь максимальные характеристики среди всех имеющихся в таблице PC.
3. Цена должна быть средней среди всех ПК, имевшихся в таблице PC до вставки.

Вот ТРУ решение этой задачи:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
insert into PC
select 
(P.model+ (select max(pc.code) from pc)) code,
p.model model,
(select max(speed) from pc) speed,
(select max(ram) from pc) ram,
(select max(hd) from pc) hd,
CAST((SELECT MAX(CAST (SUBSTRING(cd,1,LEN(cd) - 1) AS int)) FROM PC) AS VARCHAR) + 'x' AS cd,
(select avg(price) from pc) price
from product p
where P.Model not in (select Pc.Model from pc)
and type = 'PC'



я решил задачу таким образом (наверняка как затупок, ведь в таком случае select max(cd) from pc - максимальное поле берется не совсем корректно т.к. значения в данном поле типа VARCHAR2(10 BYTE) и имеет значения 12x, 40x, 50x):
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
insert into PC
select 
P.model+ (select max(pc.code) from pc) as code,
p.model as model,
(select max(speed) from pc) speed,
(select max(ram) from pc) ram,
(select max(hd) from pc) hd,
(select max(cd) from pc)  cd,
(select avg(price) from pc) price
from product p
where P.Model not in (select Pc.Model from pc)
and type = 'PC';



теперь интересное что при выполнении селекта из ТРУ решения, на Oracle Database 11g Express Edition ругаетсо ошибкой
Код: plsql
1.
ORA-00906: missing left parenthesis

:
Код: plsql
1.
2.
3.
4.
5.
SELECT CAST((SELECT MAX(CAST (SUBSTRING(cd,1,LEN(cd) - 1) AS INT)) FROM PC) AS VARCHAR) + 'x' AS cd
FROM product p
WHERE P.Model NOT IN
  (SELECT Pc.Model FROM pc)
AND type = 'PC';



Вопрос ПОЧЕМУ?
...
Рейтинг: 0 / 0
Интересная задачка с http://sql-ex.ru
    #39380869
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джонни_Инглиш,

Ты действительно ожидаешь работы mssql синтаксиса в оракле?
...
Рейтинг: 0 / 0
Интересная задачка с http://sql-ex.ru
    #39380870
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совершенно бредовая задача и проктостоматологическое решение для сервера без MERGE.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Интересная задачка с http://sql-ex.ru
    #39380878
ok, я его и не ждал)

Код: plsql
1.
2.
3.
4.
5.
6.
SELECT
CAST( (SELECT MAX(CAST (SUBSTR(cd,1,LENGTH(cd) - 1) AS INT)) FROM PC) AS VARCHAR) + 'x' AS cd
FROM product p
WHERE P.Model NOT IN
  (SELECT Pc.Model FROM pc)
AND type = 'PC';



Ошибка сохраняется:
Код: plsql
1.
2.
[color=red]
ORA-00906: missing left parenthesis[/color]
...
Рейтинг: 0 / 0
Интересная задачка с http://sql-ex.ru
    #39380882
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джонни_Инглиш,

Осталось буквально ещё одно усилие.
...
Рейтинг: 0 / 0
Интересная задачка с http://sql-ex.ru
    #39380884
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джонни_Инглиш,

Т.е. прочесть concepts и sql language reference. В частности, про типы данных и оператор конкатенации.
...
Рейтинг: 0 / 0
Интересная задачка с http://sql-ex.ru
    #39380889
intrilligator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
+ 'x'



а чо. в яве проканало бы..
...
Рейтинг: 0 / 0
Интересная задачка с http://sql-ex.ru
    #39380894
env,

ок, спс что сильно не пинаешь)

Код: plsql
1.
2.
3.
4.
5.
6.
SELECT
CAST( (SELECT MAX(CAST (SUBSTR(cd,1,LENGTH(cd) - 1) AS INT)) FROM PC) AS VARCHAR) || 'x' AS cd
FROM product p
WHERE P.Model NOT IN
  (SELECT Pc.Model FROM pc)
AND type = 'PC';



ошибка сохраняется.
...
Рейтинг: 0 / 0
Интересная задачка с http://sql-ex.ru
    #39380904
arlx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Текст ошибки прочитал?
Отсутствует левая скобка. а значит что?
Значит:
Код: plsql
1.
2.
3.
4.
5.
6.
SELECT
CAST( (SELECT MAX(CAST (SUBSTR(cd,1,LENGTH(cd) - 1) AS INT)) FROM PC) AS VARCHAR(10)) || 'x' AS cd
FROM product p
WHERE P.Model NOT IN
  (SELECT Pc.Model FROM pc)
AND type = 'PC';



Хотя все это бред..))
...
Рейтинг: 0 / 0
Интересная задачка с http://sql-ex.ru
    #39380908
arlx,

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


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