Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Operand should contain 1 column / 8 сообщений из 8, страница 1 из 1
19.10.2018, 16:43
    #39720077
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Operand should contain 1 column
Где ошибка? Структура полностью соответствует
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
INSERT INTO reports_template(group_parent,groupid,torep,KODnom,NAIM,All0,All1,ud0,ud1,raz0,raz1,otk0,otk1,view0,view1) 
SELECT(select kodvopr.group_parent AS group_parent,
kodvopr.groupid AS groupid,
kodvopr.torep AS torep,
kodvopr.KODnom AS KODnom,
kodvopr.NAIM as NAIM,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') then 1 else 0 end) AS All0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') then 1 else 0 end) AS All1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'УДОВЛЕТВОРЕНО') then 1 else 0 end) AS ud0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'УДОВЛЕТВОРЕНО') then 1 else 0 end) As ud1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'РАЗЪЯСНЕНО') then 1 else 0 end) AS raz0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'РАЗЪЯСНЕНО') then 1 else 0 end) As raz1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'ОТКАЗАHО') then 1 else 0 end) As otk0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'ОТКАЗАHО') then 1 else 0 end) AS otk1, 
sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (control=1) AND (resultview='')  then 1 else 0 end)AS view0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (control=1) AND (resultview='') then 1 else 0 end) AS view1
From kodvopr 
LEFT JOIN register ON kodvopr.KODnom = register.themeid
 group by KODnom ORDER BY kodvopr.KOD11,kodvopr.groupid)
...
Рейтинг: 0 / 0
19.10.2018, 16:50
    #39720086
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Operand should contain 1 column
Валерий666,

вы для чего в select вложили другой select?
...
Рейтинг: 0 / 0
19.10.2018, 16:54
    #39720090
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Operand should contain 1 column
MelkijВалерий666,

вы для чего в select вложили другой select?
Вложеный select - запрос.
...
Рейтинг: 0 / 0
19.10.2018, 17:20
    #39720102
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Operand should contain 1 column
Валерий666,

так для чего? Не умеет mysql преобразовывать row в скаляр, да и не нужно это судя по более чем 1 полю в insert.
...
Рейтинг: 0 / 0
19.10.2018, 17:25
    #39720105
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Operand should contain 1 column
MelkijВалерий666,

так для чего? Не умеет mysql преобразовывать row в скаляр, да и не нужно это судя по более чем 1 полю в insert.
мм. а как тогда вставить результат выполнения запроса в таблицу?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
select kodvopr.group_parent AS group_parent,
kodvopr.groupid AS groupid,
kodvopr.torep AS torep,
kodvopr.KODnom AS KODnom,
kodvopr.NAIM as NAIM,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') then 1 else 0 end) AS All0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') then 1 else 0 end) AS All1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'УДОВЛЕТВОРЕНО') then 1 else 0 end) AS ud0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'УДОВЛЕТВОРЕНО') then 1 else 0 end) As ud1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'РАЗЪЯСНЕНО') then 1 else 0 end) AS raz0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'РАЗЪЯСНЕНО') then 1 else 0 end) As raz1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'ОТКАЗАHО') then 1 else 0 end) As otk0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'ОТКАЗАHО') then 1 else 0 end) AS otk1, 
sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (control=1) AND (resultview='')  then 1 else 0 end)AS view0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (control=1) AND (resultview='') then 1 else 0 end) AS view1
From kodvopr 
LEFT JOIN register ON kodvopr.KODnom = register.themeid
 group by KODnom ORDER BY kodvopr.KOD11,kodvopr.groupid
...
Рейтинг: 0 / 0
19.10.2018, 17:36
    #39720108
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Operand should contain 1 column
Валерий666,

добавьте перед запросом insert into. Не нужен для этого вложенный select
...
Рейтинг: 0 / 0
22.10.2018, 10:16
    #39720763
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Operand should contain 1 column
MelkijВалерий666,

добавьте перед запросом insert into. Не нужен для этого вложенный select

Понял. просто ориентировался на примеры. Да все получилось.
Подскажите как мне сделать для того результата(код выше) update по KODnom вот этим результатом:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
select kodvopr.group_parent,kodvopr.groupid,kodvopr.torep,kodvopr.KODnom,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') then 1 else 0 end) AS All0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') then 1 else 0 end) AS All1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'УДОВЛЕТВОРЕНО') then 1 else 0 end) AS ud0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'УДОВЛЕТВОРЕНО') then 1 else 0 end) As ud1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'РАЗЪЯСНЕНО') then 1 else 0 end) AS raz0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'РАЗЪЯСНЕНО') then 1 else 0 end) As raz1,
 sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (resultview = 'ОТКАЗАHО') then 1 else 0 end) As otk0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (resultview = 'ОТКАЗАHО') then 1 else 0 end) AS otk1, 
sum(case when (datecreate between '2018-01-01' AND '2018-10-09') AND (control=1) AND (resultview='')  then 1 else 0 end)AS view0,
 sum(case when (datecreate between '2017-01-01' AND '2017-10-09') AND (control=1) AND (resultview='') then 1 else 0 end) AS view1

 from kodvopr 
LEFT JOIN register ON kodvopr.KODnom = register.themeid
 group by group_parent,groupid ORDER BY kodvopr.KOD11;



т.е. у меня получается табличка:
http://rgho.st/7Ndn8D5RC.view][img] http://rgho.st/7Ndn8D5RC/thumb.png [/img]
Мне надо посчитать суммы (запрос выше), в итоге получаю вот такой результат:

http://rgho.st/644dGy4gP.view][img] http://rgho.st/644dGy4gP/thumb.png [/img]

Мне надо обновить головные записи групп с суммами, по полю KODnom, можно ли это сделать добавлением UPDATE к запросу выше?
...
Рейтинг: 0 / 0
22.10.2018, 10:18
    #39720764
Валерий666
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Operand should contain 1 column
Прям беда со вставками картинок...

1. http://rgho.st/7Ndn8D5RC

2. http://rgho.st/644dGy4gP
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Operand should contain 1 column / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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