Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / single-row subquery returns more than one row / 9 сообщений из 9, страница 1 из 1
02.05.2018, 23:44
    #39639111
demamon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
single-row subquery returns more than one row
Есть 2 таблицы
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 ` CREATE TABLE "SYSTEM"."SALECAR" 
   ("CARBRANDID" NUMBER NOT NULL ENABLE, 
    "CARMODELID" NUMBER NOT NULL ENABLE, 
    "COSTT" NUMBER NOT NULL ENABLE, 
    "SALEDATE" DATE NOT NULL ENABLE, 
    "LOADID" NUMBER, 
     CONSTRAINT "FK_ID_DOWNLOADS" FOREIGN KEY ("LOADID")
      REFERENCES "SYSTEM"."ID_DOWNLOADS" ("LOADID") ENABLE
   );`                                                                      
 `CREATE TABLE "SYSTEM"."CAR_BRAND" 
   (    "CARBRANDID" NUMBER NOT NULL ENABLE, 
    "BRANDNAME" VARCHAR2(20 BYTE) NOT NULL ENABLE, 
     CONSTRAINT "CAR_BRAND_PK" PRIMARY KEY ("CARBRANDID")                
  );`  


Нужно написать запрос, есть переменная loadid1 по которой нужно вывести таблицу в которой будет BRANDNAME и сумма COST по этому бренду. Лучше этого придумать не могу.
Код: plsql
1.
2.
3.
4.
5.
SELECT Br.BRANDNAME, SUM(Sc.COSTT) AS COSTT
FROM CAR_BRAND Br INNER JOIN SALECAR Sc ON Br.CARBRANDID = Sc.CARBRANDID
WHERE Sc.CARBRANDID =
(SELECT Sc.Carbrandid FROM SALECAR WHERE loadid1 = Sc.loadid) 
GROUP BY Br.BRANDNAME;
...
Рейтинг: 0 / 0
02.05.2018, 23:51
    #39639116
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
single-row subquery returns more than one row
demamon,
От сессии до сессии?...
...
Рейтинг: 0 / 0
02.05.2018, 23:59
    #39639119
demamon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
single-row subquery returns more than one row
mefman,

Если бы)
...
Рейтинг: 0 / 0
03.05.2018, 12:49
    #39639339
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
single-row subquery returns more than one row
demamon,

почему сразу не написать Sc.loadid=loadid1?

.....
stax
...
Рейтинг: 0 / 0
03.05.2018, 17:14
    #39639570
demamon
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
single-row subquery returns more than one row
Stax,
Cумму по полям не считает, выводит только по 1 полю
...
Рейтинг: 0 / 0
03.05.2018, 17:31
    #39639582
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
single-row subquery returns more than one row
demamonStax,
Cумму по полям не считает, выводит только по 1 полю

не понял
Код: plsql
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.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
SQL> ed
Wrote file afiedt.buf

  1  with SALECAR (CARBRANDID,COSTT,LOADID) as (
  2  select 1,10,1 from dual union all
  3  select 2,20,1 from dual union all
  4  select 1,100,1 from dual union all
  5  select 2,200,1 from dual union all
  6  select 1,11,2 from dual union all
  7  select 2,22,2 from dual)
  8  ,CAR_BRAND (CARBRANDID,BRANDNAME) as (
  9  select 1,'bmw' from dual union all
 10  select 2,'zaz' from dual )
 11  SELECT Br.BRANDNAME, SUM(Sc.COSTT) AS COSTT
 12  FROM CAR_BRAND Br INNER JOIN SALECAR Sc ON Br.CARBRANDID = Sc.CARBRANDID
 13  WHERE Sc.CARBRANDID =
 14  (SELECT Sc.Carbrandid FROM SALECAR WHERE :loadid1 = Sc.loadid)
 15* GROUP BY Br.BRANDNAME
SQL> /
(SELECT Sc.Carbrandid FROM SALECAR WHERE :loadid1 = Sc.loadid)
 *
ERROR at line 14:
ORA-01427: single-row subquery returns more than one row


SQL> ed
Wrote file afiedt.buf

  1  with SALECAR (CARBRANDID,COSTT,LOADID) as (
  2  select 1,10,1 from dual union all
  3  select 2,20,1 from dual union all
  4  select 1,100,1 from dual union all
  5  select 2,200,1 from dual union all
  6  select 1,11,2 from dual union all
  7  select 2,22,2 from dual)
  8  ,CAR_BRAND (CARBRANDID,BRANDNAME) as (
  9  select 1,'bmw' from dual union all
 10  select 2,'zaz' from dual )
 11  SELECT Br.BRANDNAME, SUM(Sc.COSTT) AS COSTT
 12  FROM CAR_BRAND Br INNER JOIN SALECAR Sc ON Br.CARBRANDID = Sc.CARBRANDID
 13  WHERE :loadid1 = Sc.loadid
 14* GROUP BY Br.BRANDNAME
SQL> /

BRA      COSTT
--- ----------
zaz        220
bmw        110

SQL>



.....
stax
...
Рейтинг: 0 / 0
04.05.2018, 14:27
    #39640069
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
single-row subquery returns more than one row
Stax,

Да ты волшебник! В смысле, магией данных воспользовался в своём примере.

Код: plsql
1.
WHERE Sc.CARBRANDID IN
...
Рейтинг: 0 / 0
04.05.2018, 14:31
    #39640076
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
single-row subquery returns more than one row
Stax,

Формально, оба ответа соответствуют постановке зада чи.

demamonНужно написать запрос, есть переменная loadid1 по которой нужно вывести таблицу в которой будет BRANDNAME и сумма COST по этому бренду
...
Рейтинг: 0 / 0
04.05.2018, 15:13
    #39640117
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
single-row subquery returns more than one row
envStax,

Да ты волшебник! В смысле, магией данных воспользовался в своём примере.

Код: plsql
1.
WHERE Sc.CARBRANDID IN


видать перегрелся, туплю, не могу понять про магию

....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / single-row subquery returns more than one row / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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