po_saa Ответов: 2

Представление MS SQL. Два одинаковых поля


Я застрял

в таблице есть два поля одинакового типа, Соединенных полем "код" с другой таблицей, описывающей код

Пожалуйста предложите

как создать представление, чтобы показать описание этих двух полей из цепной таблицы вместо кода.


SELECT        dbo.MFU.PrintFormatMaximum, dbo.MFU.PrintFormatMinimum
FROM            dbo.MFU LEFT OUTER JOIN
                         dbo.PrintFormatTypes ON dbo.MFU.PrintFormatMinimum = dbo.PrintFormatTypes.Code AND dbo.MFU.PrintFormatMaximum = dbo.PrintFormatTypes.Code


Что я уже пробовал:

форумы,
TSQL,
Представление SQL,
MSDN

OriginalGriff

Вам нужно показать нам примеры данных для таблиц, пример вывода из вашего запроса и объяснить, какой вывод вы ожидаете - мы не можем решить его, когда вы печатаете как можно меньше!

Помните, что мы не можем видеть ваш экран, получить доступ к вашему жесткому диску или прочитать ваши мысли - мы получаем только то, что вы печатаете для работы.
Используйте виджет "улучшить вопрос", чтобы отредактировать свой вопрос и предоставить более подробную информацию.

po_saa

Я не понимаю, как прикрепить картинку и файлы

OriginalGriff

Не надо: используйте текст. Таким образом, нам будет проще дублировать ваши образцы данных для тестирования...

po_saa

конечно
левая таблица "Table_data" выглядит следующим образом

поле1 поле2
-------------------
1 2
3 4

правая таблица "Table_dictionary" - это
field_code field_description
----------------------------------
1 один
2 два
3 три
4 четыре

ожидалось увидеть в поле зрения

поле1 поле2
----------------------
раз два
три четыре

Выберите dbo.Table_Data.поле1, ДБО.Table_Data.поле2
От ДБО.Table_Data левое внешнее соединение
ДБО.Table_Dictionary на dbo.Table_Data.поле2 = ДБО.Table_Dictionary.field_code и dbo.Table_Data.поле1 = ДБО.Table_Dictionary.field_code


то есть "одна цепная таблица словаря" - много полей"

2 Ответов

Рейтинг:
2

Santosh kumar Pithani

--Normal view is invalid after dropping view dependency table.
--we can't drop view dependency table by using "WITH SCHEMABINDING" option in view.
    
CREATE view VName WITH SCHEMABINDING 
 AS 
SELECT  
     MFU.PrintFormatMaximum,
     MFU.PrintFormatMinimum

FROM  dbo.MFU LEFT OUTER JOIN dbo.PrintFormatTypes 
 
  ON dbo.MFU.PrintFormatMinimum = dbo.PrintFormatTypes.Code AND
     dbo.MFU.PrintFormatMaximum = dbo.PrintFormatTypes.Code


Рейтинг:
12

OriginalGriff

Цитата:
то есть "одна цепная таблица словаря" - много полей"

Вам нужно два соединения, по одному для каждого столбца в исходной таблице:
SELECT d1.field_description AS Field1, d2.field_description AS Field2 FROM Table_data t
JOIN Table_dictionary d1 ON t.field1 = d1.field_code
JOIN Table_dictionary d2 ON t.field2 = d2.field_code