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

Откуда: Санкт-Петербург
Сообщений: 317
В Access у представления такой SQL:

SELECT tblSales.ID, tblSalesProducts.ProductID, tblMain.ProductCode, tblMain.ID, tblMain.Product, tblMain.ProductDescription, tblMain.ProductGroup, tblMain.ProductFamily, tblMain.ProductType, tblMain.ProductKind, tblMain.ProductSort, tblMain.ComplexWare, tblMain.BarCode, tblMain.Unit, tblMain.QuantityPerUnit, tblMain.GrossWeight, tblMain.NetWeight, tblMain.Period, tblMain.Status, tblMain.Limit, tblMain.Producer, tblMain.ProducerCountry, tblMain.KeepPlace, tblMain.ProducerCode, tblMain.Notes, tblMain.InPriceList, tblMain.Favorites, tblMain.AddTime, tblMain.Pic1, tblMain.DeadProduct, tblMain.High, tblMain.Width, tblMain.Another, tblSalesProducts.Amount, tblSalesProducts.SalePrice, tblSales.DocumentName, tblSales.DocumentNumber, tblSales.DocumentDate, tblClients.Client
FROM (tblSales INNER JOIN (tblMain INNER JOIN tblSalesProducts ON tblMain.ID = tblSalesProducts.ProductID) ON tblSales.ID = tblSalesProducts.SaleID) INNER JOIN tblClients ON tblSales.ClientID = tblClients.ID;

Для MS SQL я убираю скобки из части FROM и пытаюсь выполнить след. инструкцию:

CREATE VIEW [qdfSelectedSales] AS SELECT tblSales.ID, tblSalesProducts.ProductID, tblMain.ProductCode, tblMain.ID, tblMain.Product, tblMain.ProductDescription, tblMain.ProductGroup, tblMain.ProductFamily, tblMain.ProductType, tblMain.ProductKind, tblMain.ProductSort, tblMain.ComplexWare, tblMain.BarCode, tblMain.Unit, tblMain.QuantityPerUnit, tblMain.GrossWeight, tblMain.NetWeight, tblMain.Period, tblMain.Status, tblMain.Limit, tblMain.Producer, tblMain.ProducerCountry, tblMain.KeepPlace, tblMain.ProducerCode, tblMain.Notes, tblMain.InPriceList, tblMain.Favorites, tblMain.AddTime, tblMain.Pic1, tblMain.DeadProduct, tblMain.High, tblMain.Width, tblMain.Another, tblSalesProducts.Amount, tblSalesProducts.SalePrice, tblSales.DocumentName, tblSales.DocumentNumber, tblSales.DocumentDate, tblClients.Client 
FROM tblSales INNER JOIN tblMain INNER JOIN tblSalesProducts ON tblMain.ID=tblSalesProducts.ProductID ON tblSales.ID=tblSalesProducts.SaleID INNER JOIN tblClients ON tblSales.ClientID=tblClients.ID

Но получаю ошибку:
-2147217900: Column names in each view or function must be unique. Column name 'ID' in view or function 'qdfSelectedSales' is specified more than once.

Не подскажите, где проблема и как правильно сделать?
Заранее спасибо.
25 июл 11, 18:09    [11024720]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, плз, перенести Access View на MS SQL 2008  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31979
Игорь1973
Не подскажите, где проблема
Может, прочитать, что сервер написал?
Игорь1973
Column name 'ID' in view or function 'qdfSelectedSales' is specified more than once.

Нельзя создать вьюху, у которой несколько колонок называются одинаково. Как вы к ним обращаться то будете???
25 июл 11, 18:20    [11024761]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, плз, перенести Access View на MS SQL 2008  [new]
Игорь1973
Member

Откуда: Санкт-Петербург
Сообщений: 317
Читать я тоже умею и прочител, что написал сервер.
Однако я не вижу повторного указания поля ID.
В части SELECT указано tblSales.ID и tblMain.ID, это разные таблицы.
Может быть, подскажете конкретное проблемное место?
25 июл 11, 18:27    [11024790]     Ответить | Цитировать Сообщить модератору
 Re: Помогите, плз, перенести Access View на MS SQL 2008  [new]
Игорь1973
Member

Откуда: Санкт-Петербург
Сообщений: 317
А понял, надо алиас полю дать, т.е. указать второй ID из другой таблицы через AS.
Спасибо, помогли.
25 июл 11, 18:43    [11024871]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить