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

Откуда:
Сообщений: 536
Господа,сызнова я.
Запрос
select prdl_description as [Товар],b.prd_PrimaryCode as [Код товара],g.untl_Description [Упковка],cast(d.spt_Quantity as float (6)) as [Количество], h.loc_Code as [Ячейка],j.aba_BuildingCode as [Участок]
from LV_ProductLang a
join LV_Product b on convert(varchar(8),b.prd_ID) = a.prdl_ProductID
join LV_Stock c on c.stk_ProductID = b.prd_ID
join LV_StockPackType d on d.spt_StockID = c.stk_ID
join LV_ItemUnit e on e.itu_ID = d.spt_ItemUnitID
join LV_Unit f on f.unt_ID = e.itu_UnitID
join LV_UnitLang g on g.untl_UnitID = f.unt_ID
join LV_Location h on h.loc_ID= c.stk_LocationID
join ANT_BuildingAttributes j on j.aba_BuildingID = h.loc_BuildingID

where b.prd_PrimaryCode = '094758' or b.prd_PrimaryCode = '090671' and g.untl_LanguageID = 4
--and h.loc_Code = 'PHseti'

Выдает

Товар Код товара У паковка Кол-во уп Ячепйка Участок
Бумага "Maestro E 94758 Boxes 4260 RB100 PH
Бумага "Maestro Extra 94758 Boxes 4260 RB100 PH
Бумага "Maestro Extr 94758 Коробка(и) 4260 RB100 PH
Бумага "Maestro Ext2% 94758 Коробка(и) 4260 RB100 PH

Вопрос N1
Мне нужно перечислить много ячеек, поле b.prd_PrimaryCode можго ли это сделать как-то через запятую?
2-й вопрос, если я ставлю OR,то не отрабатывает условие g.untl_LanguageID = 4 (оно отвечает за то, чтобы упаковки были на русском языке). Если я убираю OR,т.е. оставляю только 1 товар, то все прекрасно работает.
Или как-то можно совместить корректно OR и AND?
16 сен 15, 15:00    [18156508]     Ответить | Цитировать Сообщить модератору
 Re: Перечисление значение через запятую  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 536
То есть, если такой запрос,то все выводится корректно

select prdl_description as [Товар],b.prd_PrimaryCode as [Код товара],g.untl_Description [Упковка],cast(d.spt_Quantity as float (6)) as [Количество], h.loc_Code as [Ячейка],j.aba_BuildingCode as [Участок]
from LV_ProductLang a
join LV_Product b on convert(varchar(8),b.prd_ID) = a.prdl_ProductID
join LV_Stock c on c.stk_ProductID = b.prd_ID
join LV_StockPackType d on d.spt_StockID = c.stk_ID
join LV_ItemUnit e on e.itu_ID = d.spt_ItemUnitID
join LV_Unit f on f.unt_ID = e.itu_UnitID
join LV_UnitLang g on g.untl_UnitID = f.unt_ID
join LV_Location h on h.loc_ID= c.stk_LocationID
join ANT_BuildingAttributes j on j.aba_BuildingID = h.loc_BuildingID

where b.prd_PrimaryCode = '094758' and g.untl_LanguageID = 4
--and h.loc_Code = 'PHseti'
16 сен 15, 15:01    [18156519]     Ответить | Цитировать Сообщить модератору
 Re: Перечисление значение через запятую  [new]
Konst_One
Member

Откуда:
Сообщений: 11677
b.prd_PrimaryCode IN( '094758', '090671' )
16 сен 15, 15:01    [18156520]     Ответить | Цитировать Сообщить модератору
 Re: Перечисление значение через запятую  [new]
iap
Member

Откуда: Москва
Сообщений: 47198
Konst_One
b.prd_PrimaryCode IN( '094758', '090671' )
Или
(b.prd_PrimaryCode = '094758' or b.prd_PrimaryCode = '090671') and g.untl_LanguageID = 4
ибо and приоритетнее or
16 сен 15, 15:04    [18156550]     Ответить | Цитировать Сообщить модератору
 Re: Перечисление значение через запятую  [new]
Максим Александровитч
Member

Откуда:
Сообщений: 536
iap
Konst_One
b.prd_PrimaryCode IN( '094758', '090671' )
Или
(b.prd_PrimaryCode = '094758' or b.prd_PrimaryCode = '090671') and g.untl_LanguageID = 4
ибо and приоритетнее or


Ага..ща опробую
Спасибо
16 сен 15, 15:09    [18156583]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить