Ошибка в запросе? - MySQL
Формулировка задачи:
Всем привет!
Вот запрос:
Так ругается:
"Conversion failed when converting the varchar value 'yes(' to data type int."
что ему не так и как изменить запрос?
select maker, iif(count(pcs.pc)>=1,'yes('&count(pcs.pc)&')' ,'no') from Product left join (select count(*)as pc, model from pc group by model ) pcs on Product.model=pcs.model left join (select count(*)as pc,model from laptop group by model ) laptops on Product.model=laptops.model left join (select count(*)as pc,model from printer group by model ) printers on Product.model=printers.model group by maker
Решение задачи: «Ошибка в запросе?»
textual
Листинг программы
select maker, (select case when count(pcs.pc)=0 then 'no' else 'yes('+rtrim(convert(char(20),COUNT( pcs.pc))) +')' end) as pc, (select case when count(laptops.pc)=0 then 'no' else 'yes('+rtrim(convert(char(20),COUNT( laptops.pc))) +')' end) as laptop, (select case when count(printers.pc)=0 then 'no' else 'yes('+rtrim(convert(char(20),COUNT( printers.pc))) +')' end) as printer from Product left join (select count(*)as pc, model from pc group by model ) pcs on Product.model=pcs.model left join (select count(*)as pc,model from laptop group by model ) laptops on Product.model=laptops.model left join (select count(*)as pc,model from printer group by model ) printers on Product.model=printers.model group by maker
Объяснение кода листинга программы
- В этом коде используется язык SQL для создания запроса к базе данных.
- Запрос выбирает четыре поля из таблицы
Product
:maker
и три поля, которые вычисляются на основе подзапросов. - Подзапросы считают количество записей в таблицах
pcs
,laptops
иprinters
, которые соответствуют каждой модели продукта. - Затем эти количества преобразуются в строки с использованием функции
convert
и форматируются с использованием функцииrtrim
. - В каждом из трех подзапросов проверяется, равна ли сумма записей нулю, и если да, то возвращается строка
no
, в противном случае возвращается строкаyes(количество)
, гдеколичество
— это соответствующее количество записей. - Основной запрос соединяет таблицы
Product
,pcs
,laptops
иprinters
с помощью оператораleft join
, чтобы получить количество записей для каждого типа продукта. - Затем результаты группируются по полю
maker
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д