Я получаю «Все запросы, объединенные с помощью оператора UNION, INTERSECT или EXCEPT, должны иметь равное количество выражений в своих целевых списках».SQL Query, Insert, Union и Join
INSERT INTO dbo.FactInternetSales (
ProductKey
,CustomerKey
,DateKey
,OrderQuantity
,UnitPrice
,UnitPriceDiscount
,TaxAmt
,Freight
)
SELECT ProductKey
FROM dbo.dimProduct
UNION ALL
SELECT CustomerKey
FROM dbo.dimCustomer
UNION ALL
SELECT DateKey
FROM dbo.dimDate
UNION ALL
SELECT D.OrderQty
,D.UnitPrice
,D.UnitPriceDiscount
,H.TaxAmt
,H.Freight
FROM AdventureWorksLT2008.SalesLT.SalesOrderDetail AS D
FULL JOIN AdventureWorksLT2008.SalesLT.SalesOrderHeader H ON D.SalesOrderID = H.SalesOrderID
Я не понимаю, ваш код показывает неправильный синтаксис. я понял ошибку, которую я получил, но не смог решить проблему, пытаясь вставить ее в таблицу. – cnayak
См. обновленный. Это работает. Вы также можете использовать соединение, если у них одинаковые столбцы. – TheGameiswar
спасибо, что я смог получить то, что хотел от концепции, которую вы дали. Я удалил объединение всех и использовал WITH cte1, cte2, cte3, cte4, чтобы получить Productkey, CustomerKey, DateKey в разных столбцах. – cnayak