У меня есть база данных, созданная на Microsoft SQL Server 2012, у меня есть две таблицы: «dbo.Products» и «dbo.Categories». Я пытаюсь запросить эти две таблицы, чтобы создать таблицу размеров PRODUCT для звездообразной схемы.SQL INSERT INTO FROM SELECT
Products {ProductID, ProductName, SupplierID, CategoryID, QuantityPerUnit, UnitPrice, UnitsInStock, UnitsOnOrder, ReorderLevel, Discontinued}
Categories {CategoryID, CategoryName, Description}
Эти две таблицы из базы данных Northwind
Размерность Продукт содержит product_key, ProductID, PRODUCTNAME, CategoryId, CategoryName и categoryDescription, которые запрашиваются из Нортвинда Продукты/Категории таблиц.
SQL-код, я использую здесь:
/*Create Dimension Table */
CREATE TABLE [dbo].[PRODUCT] (
[product_key] [int] IDENTITY (1, 1) NOT NULL Primary Key,
[productID] [int] NULL ,
[productName] nvarchar(30) NULL ,
[categoryID] [int] NULL ,
[categoryName] nvarchar(30) NULL ,
[categoryDescription] nvarchar(30) NULL
)
/* Populate (insert) Dimension Table with a select statement that joins
Product and Categories. */
INSERT INTO [dbo].[PRODUCT] (productID, productName, categoryID, categoryName, categoryDescription)
SELECT
ProductID, ProductName, CategoryID, CategoryName, CategoryDescription
FROM
Products
INNER JOIN
Categories ON Categories.CategoryID = Products.CategoryID;
Итак, в чем ваш вопрос? –
Вам нужно использовать два имени части в вашем выборе, чтобы разрешить неоднозначность имени, я могу увидеть одно имя столбца, для которого обязательно 'CategoryID, может быть больше. –
Мой вопрос связан с синтаксисом инструкции SELECT, я попытался использовать два имени части, используя [dbo]. [Products], но я получаю «Недопустимое имя объекта». –