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

Откуда:
Сообщений: 24
Постараюсь вкратце описать:
есть таблица iu c исключениями, таблица rmc базовая,

case when rmc.DC_ZONE in (N'Бытовая химия',N'Нон-фуд',N'Сигареты',N'Фуд') then N'Бакалея'
 when rmc.DC_ZONE in (N'Фрэш',N'Яйцо') then N'Охлажденка'
 when rmc.DC_ZONE in (N'Заморозка') then N'Заморозка'

case when iu.UDA_VALUE='1' THEN N'Бакалея'
WHEN iu.UDA_VALUE='2' THEN N'Охлажденка'
WHEN iu.UDA_VALUE='3' THEN N'Заморозка' 


эти кейсы нужно как-то связать, например isnull(iu.ITEM,rmc.ITEM), но как описать тот случай, когда первое он находит, и как описать, когда он первое не находит, выбирает второй вариант, чтобы всё вместе было?
17 май 17, 13:00    [20489372]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно оформить запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46978
SELECT [ITEM]=ISNULL(iu.ITEM,rmc.ITEM)
FROM rmc LEFT JOIN iu ON
CASE
 WHEN rmc.DC_ZONE IN(N'Бытовая химия',N'Нон-фуд',N'Сигареты',N'Фуд') THEN '1'
 WHEN rmc.DC_ZONE IN(N'Фрэш',N'Яйцо') THEN '2'
 WHEN rmc.DC_ZONE IN(N'Заморозка') THEN '3'
END = iu.UDA_VALUE;
Но как-то некрасиво всё спроектировано
Вот эти вот значения: N'Бакалея', N'Охлажденка', N'Заморозка' - так и просятся в таблицу-справочник.
Чтобы не писать все эти километровые CASEы
17 май 17, 13:23    [20489508]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно оформить запрос  [new]
Владислав Колосов
Member

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

точно! Данные должны находиться в таблицах, а не в программе.
17 май 17, 14:03    [20489719]     Ответить | Цитировать Сообщить модератору
 Re: Как правильно оформить запрос  [new]
Руслан Дамирович
Member

Откуда: Резиновая нерезиновая
Сообщений: 940
Я тоже хочу такой уровень телепатии!!!
эти кейсы нужно как-то связать, ... но как описать тот случай, когда первое он находит, и как описать, когда он первое не находит, выбирает второй вариант, чтобы всё вместе было?

...
17 май 17, 15:12    [20490097]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить