Вложенный IIF/Lookup
Я новичок в SQL, SSRS и построителе отчетов.
Я пытаюсь сравнить три отдельных набора данных: 1. Порецепты (это все заказы на покупку и товары, полученные компанией). 2. Ров (это все описательные данные, доступные на уровне товара) и 3. Производство (это дамп данных, который имеет информацию об элементах и использовании, так что он довольно сильно перекрывает два других набора данных).
Сначала мне нужно было создать функцию, которая позволяла бы мне проверять ITEM_ID.Value (из poreceipts) на Sku.Value (из рва) и возвращать Series_Desc.Value (из рва). Который выглядит так:
= Lookup (Поля!ITEM_ID.Value, Поля!Sku.Value, Поля!Series_Desc.Value, "ров")
К сожалению, поле Series_Desc для ряда элементов пустое. Вот тут и вступает третий набор данных. Мне нужно иметь возможность проверить, является ли значение пустым, если нет, то оно возвращает Series_Desc.Value... Если оно пустое, то мне нужно поискать ITEM_ID.Value с BASE_ITEM.Value (из производства набора данных) для возврата COATED_ITEM_ID.Value (снова из производства набора данных), который затем необходимо использовать для поиска Sku.Value и возврата Series_Desc.Value (из рва).
Фу... это было полным глотком, и, надеюсь, это несколько ясно.
Спасибо всем заранее!
-К
1 ответ
Если я вас правильно понял, то вам нужен только один набор данных, и сервер баз данных выполнит поиск за вас. Запрос для вашего набора данных должен выглядеть примерно так:
SELECT po.*, ISNULL(m.Series_Desc, m2.Series_Desc) AS Series_Desc
FROM poreceipts po
LEFT OUTER JOIN moat m ON po.ITEM_ID = m.Sku
LEFT OUTER JOIN poreceipts b ON po.BASE_ITEM = b.ITEM_ID
LEFT OUTER JOIN moat m2 ON b.COATED_ITEM_ID = m2.Sku;