在连接过程中排除两张表中可用的适当内容?

问题描述 投票:0回答:1

我想连接四张表,但不幸的是,其中两张表有一个名为"活跃"和"创建日期",我想将其排除在外。由于总共有500个属性,因此明确列出每个要包含的属性是不可行的。有没有什么命令可以排除包含在VehicleFiles和Deliveries表中的Active属性?

CREATE VIEW PDIReport AS
SELECT *
  FROM [LUX_WEB_SAM].[sam].[Deliveries] del  
  join [LUX_WEB_SAM].[sam].[VehicleFiles] vf  
     ON (vf.FK_Delivery = del.PK_Delivery)
     join [LUX_WEB_SAM].dbo.OrderNumbers ord
    ON (ord.FK_VehicleFile = vf.PK_VehicleFile)
    join [Autoline_Basis].[dbo].[Autoline_NEWST_Basis] newst
    ON (ord.CommissionNumber = newst.CommNumber)
    join [Autoline_Basis].[dbo].[Autoline_MK_Vehicle] vehicle
    ON (ord.CommissionNumber = vehicle.CommissionNumber)

Msg 4506, Level 16, State 1, Procedure PDIReport, Line 3 [Batch Start Line 0] 每个视图或函数中的列名必须是唯一的。视图或函数 "PDIReport "中的列名 "创建日期 "被指定了一次以上。

sql-server
1个回答
1
投票

有2种方法可以减少一点负担,你可以把select做得像。

Select del.*, vf.<explicit fields>, ord.* etc

或者使用一个动态语句来获取你想要的字段,这样你就不需要明确定义它们了。 它将会创建选择行。


1
投票

你可以创建一个视图,列出你需要的列,然后使用视图。这将减少负担,看起来更干净。


1
投票

你可以使用系统视图INFORMATION_SCHEMA.COLUMNS和INFORMATION_SCHEMA.TABLES来获取表中所有列的列表。 你可以用它来创建你想选择的列的列表。 然后将其复制粘贴在你的视图中。


0
投票

只是使用Server Mangement Studios的图形功能来选择所有或取消选择单个属性来创建视图。完美的工作!

© www.soinside.com 2019 - 2024. All rights reserved.