Вложенный 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;
Другие вопросы по тегам