powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Простой запрос, выводящий значение соответствующее результату другого стобца
4 сообщений из 4, страница 1 из 1
Простой запрос, выводящий значение соответствующее результату другого стобца
    #40056085
letmahob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, как вывести результат звонка, который соответствует значению второго столбца (он высчитывает с помощью min() ). Приложу скрин, запроса и таблицы. Необходимо, чтобы в колонке "результат" отобразилось "не дозвонились", а не "контакт состоялся".
...
Рейтинг: 0 / 0
Простой запрос, выводящий значение соответствующее результату другого стобца
    #40056092
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мы, знаете ли, не лечим по фотографиям.

Выкладывайте: CREATE TABLE для таблиц(ы), INSERT INTO с тестовыми данными, требуемый ответ для этих данных. Всё в виде правильно отформатированных текста/кода/таблиц. И указывайте точную версию MySQL.
...
Рейтинг: 0 / 0
Простой запрос, выводящий значение соответствующее результату другого стобца
    #40056117
letmahob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

CREATE TABLE scb
(
id int(10) unsigned,
time time,
result varchar(30)
);

insert into scb (id, time, result) VALUES
(39748977, '13:53:08', 'Консультация'),
(39748977, '13:58:47', 'Консультация'),
(39748058, '13:36:39', 'Контакт состоялся'),
(39748057, '13:37:18', 'Консультация'),
(39748056, '13:58:11', 'Контакт состоялся'),
(39748056, '13:36:45', 'Не дозвонились'),
(39748056, '13:46:40', 'Не дозвонились'),
(39748056, '13:52:15', 'Не дозвонились');

select id, min(time) as 'время первого контакта',
??? as 'результат первого контакта',
count(result) as 'количество попыток',
min(case when result <> 'Не дозвонились' then time else 'не было дозвона' end) as 'время первого дозвона'
from scb
where id = 39748056
group by id;

mysql 8.0.12
...
Рейтинг: 0 / 0
Простой запрос, выводящий значение соответствующее результату другого стобца
    #40056182
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
letmahob

Код: sql
1.
2.
CREATE TABLE scb
  result varchar(30)

Текстовое поле для таких целей - сомнительное решение. Делайте отдельную таблицу (а-ля справочник), где у вас будут храниться наименования результатов соединений, а потом JOIN-ите её к основной. Или в крайнем случае ENUM(). Тогда можно будет сравнивать значения по Integer, и заодно сервер с пользователями скажут вам спасибо. И наименования таблиц/полей привести в человеческий вид.

Что касается основного вопроса, я так и не понял, какое у вас условие, чтобы получился результат "контакт состоялся"? У вас из группировки по id может получиться только одна запись, причём с полями, которые у вас участвуют в агрегировании. Result при этом выбирается почти случайно, поэтому он у вас не совпадает с time (причём в другой выборке может совпасть).
Если просто сравнение с текстовым полем result, то это
Код: sql
1.
2.
3.
SELECT scb.id, scb.time, scb.result AS 'результат первого контакта' 
   FROM scb
WHERE id = 39748056 AND scb.result = 'Контакт состоялся'
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Простой запрос, выводящий значение соответствующее результату другого стобца
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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