Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 Несколько запросов по бд  [new]
eva160
Member

Откуда:
Сообщений: 1
Здравствуйте. У меня есть таблица с данными врачей. И у меня есть запросы, которые я не могу реализовать.
Код:
CREATE TABLE `врач` (
  `ФИО` varchar(45) NOT NULL,
  `Специальность` varchar(45) DEFAULT NULL,
  `Стоимость` int NOT NULL,
  `Процент` int NOT NULL,
  PRIMARY KEY (`ФИО`)
);

insert into `врач` values
('Андреев А.А.', 'Педиатр', 100, 11),
('Богеева С.А.', 'Педиатр', 120, 10),
('Вольков Л.Л.', 'Педиатр', 120, 13),
('Гордеева А.А.', 'Хирург', 150, 10),
('Дореева К.К.', 'Хирург', 200, 13);


Запросы:

1) Выполнить группировку по полю специальность. Для каждой специальности вычислить максимальный процент на зарплату.
2) Отобразить поля таблицы с группировкой Стоимости.
31 май 21, 17:12    [22329447]     Ответить | Цитировать Сообщить модератору
 Re: Несколько запросов по бд  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21200
Пособие для студентов и школьников
31 май 21, 19:14    [22329522]     Ответить | Цитировать Сообщить модератору
 Re: Несколько запросов по бд  [new]
Gluck99
Member

Откуда: Оттуда
Сообщений: 1156
eva160,
Запросы-то элементарные, в две строчки, что конкретно не получается реализовать? Нужно хоть попробовать самостоятельно поскрипеть мозгами. Дальше-то как собираетесь жить?
1 июн 21, 11:35    [22329737]     Ответить | Цитировать Сообщить модератору
 Re: Несколько запросов по бд  [new]
177Anastasia
Member

Откуда:
Сообщений: 4
Помогите, что не так?
ввожу

SELECT MAX(Процент) as max FROM врач
WHERE 'Специальность'='Педиатр' AND 'Специальность'='Хирург'

Выдает
max
NULL


Что я тупица, я знаю, тухлыми помидорами прошу не кидаться))
1 июн 21, 16:10    [22329921]     Ответить | Цитировать Сообщить модератору
 Re: Несколько запросов по бд  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21200
Как полагаете, строковый литерал 'Специальность' и строковый литерал 'Педиатр' - равны? вот даже на глаз видно - разные. А значит, запрос вернёт пустой набор записей для неявной группировки - что он собственно и демонстрирует, рисуя NULL.

В MySQL следует тщательнейшим образом следить, какие кавычки ставите. Для строк и даты-времени - одинарные. Для имён полей-таблиц - обратные. Для JSON-атрибутов, путей и значений - двойные.

После первого исправления будет:
SELECT MAX(Процент) as max FROM врач
WHERE `Специальность`='Педиатр' AND `Специальность`='Хирург'


Дальше. Весь набор условий тестирует каждую строку таблицы отдельно. Как полагаете, найдётся в таблице строка, в которой в поле Специальность значение равно 'Педиатр', и при этом одновременно равно 'Хирург'? повторяю - в ОДНОЙ И ТОЙ ЖЕ записи. Вряд ли...

Это ошибки в показанном запросе. Что же на самом деле нужно, я лично понять не могу, хотя прочитал задание несколько раз. Бред, не имеющий смысла... покажите хотя бы требуемые ответы запросов по каждому пункту, что ли...

Впрочем, не исключаю, что по пункту 1 нужно
SELECT `Специальность`, MAX(`Процент`) AS `МаксимальныйПроцент`
FROM `Врач`
GROUP BY `Специальность`;


А по второму вообще тёмный лес.

Сообщение было отредактировано: 1 июн 21, 16:13
1 июн 21, 16:18    [22329927]     Ответить | Цитировать Сообщить модератору
 Re: Несколько запросов по бд  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3805
в данном контексте
"OR" "AND"
1 июн 21, 16:20    [22329929]     Ответить | Цитировать Сообщить модератору
 Re: Несколько запросов по бд  [new]
177Anastasia
Member

Откуда:
Сообщений: 4
Akina,

К сообщению приложен файл. Размер - 30Kb
1 июн 21, 16:29    [22329933]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить