Sql 查询帮助和错误

Sql 查询帮助和错误,sql,sql-server,Sql,Sql Server,我正在尝试实现一个查询,以查找到西班牙最便宜的包裹 我加入了酒店、远足、交通和航班的套餐表,并汇总了每个表的总成本 然而,我在输入我的值时收到一条错误消息,“当identity_INSERT设置为ON或复制用户正在插入NOT for replication identity列时,必须为表“package”中的identity列指定显式值。”例如 SET IDENTITY_INSERT package ON Insert Into package (hotelID, ex

我正在尝试实现一个查询,以查找到西班牙最便宜的包裹

我加入了酒店、远足、交通和航班的套餐表,并汇总了每个表的总成本

然而,我在输入我的值时收到一条错误消息,“当identity_INSERT设置为ON或复制用户正在插入NOT for replication identity列时,必须为表“package”中的identity列指定显式值。”例如

  SET IDENTITY_INSERT package ON
           Insert Into package (hotelID, excursionID, transportID, flightID)
           Values (1, 1, 1, 1)
           Insert Into package (hotelID, excursionID, transportID, flightID)
           Values (2, 2, 2, 2)
           Insert Into package (hotelID, excursionID, transportID, flightID)
           Values (3, 3, 3, 3)
           Insert Into package (hotelID, excursionID, transportID, flightID)
           Values (4, 4, 4, 4)
           Insert Into package (hotelID, excursionID, transportID, flightID)
           Values (5, 5, 5, 5)
           Insert Into package (hotelID, excursionID, transportID, flightID)
           Values (6, 6, 6, 6)
           Insert Into package (hotelID, excursionID, transportID, flightID)
           Values (7, 7, 7, 7)
           Insert Into package (hotelID, excursionID, transportID, flightID)
           Values (8, 8, 8, 8)
           Insert Into package (hotelID, excursionID, transportID, flightID)
           Values (9, 9, 9, 9)
           Insert Into package (hotelID, excursionID, transportID, flightID)
           Values (10, 10, 10, 10)

           SET IDENTITY_INSERT package OFF
这是我的问题

      SELECT p.*, (h.totalCost + e.totalCost + t.totalCost, f.totalCost) as    'Total Package Cost' FROM Package p
             INNER JOIN hotel h ON h.hotelId = p.hotelId
             INNER JOIN excursion e ON e.excursionId = p.excursionId
             INNER JOIN transport t ON t.transportId = p.transportId
             INNER JOIN flight f ON f.flightId = p.flightId
      WHERE h.location = 'Spain'
      ORDER BY (h.totalCost + e.totalCost + t.totalCost, f.totalCost) ASC
p。带下划线(不匹配表名)和h。(靠近“h”的语法不正确。底部应为“(”或SELECT。)并加下划线

有人能帮我修一下吗,谢谢!

第一部分: 插入到“包”表中:看起来“包”中有标识列 在这个insert查询的第一行,您将设置“SET IDENTITY\u insert package ON” 这意味着您试图在标识列中插入值,但不提供标识列名

尝试从第一行删除“设置标识\u插入软件包打开”
和最后一行的“设置标识\插入包关闭”

   then execute rest of the insert query. 
如果仍然收到错误。您能否共享“创建包表的表架构”?

第二部分: 在添加不同表中的“totalCost”时,删除中间的“,” 您的查询应如下所示:

   SELECT p.*, (h.totalCost + e.totalCost + t.totalCost + f.totalCost) as    'Total Package Cost' FROM Package p
             INNER JOIN hotel h ON h.hotelId = p.hotelId
             INNER JOIN excursion e ON e.excursionId = p.excursionId
             INNER JOIN transport t ON t.transportId = p.transportId
             INNER JOIN flight f ON f.flightId = p.flightId
      WHERE h.location = 'Spain'
      ORDER BY (h.totalCost + e.totalCost + t.totalCost + f.totalCost) ASC
(h.totalCost+e.totalCost+t.totalCost,f.totalCost)
应该是
(h.totalCost+e.totalCost+t.totalCost+f.totalCost)
。注意f.totalCost前面的逗号应该是
+