use*_*400 0 sql sql-server sql-server-2008
create table new_temp AS
(SELECT *
FROM [Sales].[dbo].[SecondarySales]
left JOIN [Sales].[dbo].[PrimarySales]
On [Sales].[dbo].[SecondarySales].[SalesFromID]=[Sales].[dbo].[PrimarySales].[SalesToID]);
Run Code Online (Sandbox Code Playgroud)
当我尝试在sql server管理控制台中创建表时,我在这个查询中收到错误"'('.'附近的语法不正确,它靠近AS关键字.
这不是create从selectsql server中的语句表的正确方法
使用INTO条款
SELECT ... INTO在默认文件组中创建一个新表,并将查询中的结果行插入其中
SELECT A.Col1,A.col2,B.Col1 as B_col1,B.col3...
INTO new_temp
FROM [Sales].[dbo].[SecondarySales] A
LEFT JOIN [Sales].[dbo].[PrimarySales] B
ON [Sales].[dbo].[SecondarySales].[SalesFromID] = [Sales].[dbo].[PrimarySales].[SalesToID];
Run Code Online (Sandbox Code Playgroud)
如HART CO注释中所述,如果两个表中的列名相同,则列名在表中应该是唯一的,那么您必须提供别名.
更新:
SELECT a.PrimarySalesId,a.SalesFromID,a.SalesToID,a.InvoiceNumber,a.InvoiceDate,
a.ReceiveDate,a.TotalQuantity,a.TotalAmount,a.IsAcknowledgementRequired,
a.IsReceived,a.SalesType,a.AcknowlegeDate,a.Status,a.SalesMan,
a.RecordCreationDate,a.ModifiedOn,a.CreatedBy,a.ModifiedBy,
b.SecondarySalesID,b.AcknowlegeDate,
b.CreatedBy,
b.InvoiceDate as SecondarySales_InvoiceDate,
b.InvoiceNumber as SecondarySales_InvoiceNumber,
b.IsAcknowledgementRequired,
b.IsReceived as SecondarySales_IsReceived,
b.Modified,
b.ModifiedOn as SecondarySales_ModifiedOn,
b.ReceiveDate,
b.RecordCreationDate,
b.SalesFromID as SecondarySales_SalesFromID,
b.SalesMan as SecondarySales_SalesMan,
b.SalesManID,
b.SalesToID as SecondarySales_SalesToID,
b.SalesType,
b.Status,
b.TotalAmount,
b.TotalQuantity
INTO new_temp
FROM [Sales].[dbo].[SecondarySales] b
LEFT JOIN [Sales].[dbo].[PrimarySales] a
ON b.SalesFromID = a.SalesToID
Run Code Online (Sandbox Code Playgroud)