проблема с сервером sql - PullRequest
0 голосов
/ 04 апреля 2011

У меня есть табличное произведение, содержащее значения 3 изготовителей столбцов {HCL ',' ACER ', HP} model_no Тип ПК {ПК, принтер, ноутбук} Я хочу получить набор результатов в следующих столбцах: производитель, ПК, принтер,Ноутбук, если у производителя есть проценты из вышеуказанной категории, отображает «да» в соответствующем столбце, иначе нет. Следующий код отображает «да» для всех, даже если у производителя нет продуктов. Требуется использовать операторы while и break. Пожалуйста, помогите мне

select maker,'PC'= 
 case type
when 'pc' then 'Yes' 
when 'printer' then 'Yes'
when 'Laptop' then 'Yes'
else 'No'
end, 
'Laptop'= 
case type
when 'pc' then 'Yes' 
when 'printer' then 'Yes'
when 'Laptop' then 'Yes'
else 'No'
end,'Printer'=
case type
when 'pc' then 'Yes'
when 'printer' then 'Yes'
when 'Laptop' then 'Yes'
else 'No'
end  from product where maker='ACER'

Ответы [ 3 ]

1 голос
/ 04 апреля 2011
select maker,
 case when type IN ('PC','Workstation','Server') THEN 'Yes' ELSE 'No' END AS PC,
 case when type IN ('Laptop','Tablet','Something') THEN 'Yes' ELSE 'No' END AS Laptop,
 case when type IN ('Printer','Plotter','Inkjet') THEN 'Yes' ELSE 'No' END AS Printer

from product 
where maker='ACER'

Я позволил себе изменить вашу логику.Поставьте все условия, которые подтверждают «Да» в каждом операторе IN, затем добавьте столько, сколько вам нужно / нужно.

0 голосов
/ 04 апреля 2011
select 
  maker,
  case [type] when 'pc'      then 'yes' else 'no' end as PC,
  case [type] when 'Laptop'  then 'yes' else 'no' end as Laptop,
  case [type] when 'Printer' then 'yes' else 'no' end as Printer
from product
where maker = 'ACER'
0 голосов
/ 04 апреля 2011

Попробуйте это:

        select maker,
        case type when 'pc' then 'Yes'  when 'printer' then 'Yes' when 'Laptop' then 'Yes'      else 'No' end AS PC, 
case type when 'pc' then 'Yes'  when 'printer' then 'Yes' when 'Laptop' then 'Yes' else 'No' end AS Laptop,
case type when 'pc' then 'Yes' when 'printer' then 'Yes' when 'Laptop' then 'Yes' else 'No' end AS Printer 

from product where maker='ACER' 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...