SQL - 子查询返回的值超过1。怎么修?

时间:2015-05-19 20:52:27

标签: sql sql-server inner-join

- 使用订单,客户,员工和订单明细表,选择订单ID,订单日期, - 每个订单的客户公司名称,员工姓氏和支付的总金额(包括运费,但忽略折扣)

我觉得我的答案非常接近,但我仍然遇到这个错误。我是数据库的新手,所以我认为我忽略了一些简单的事情。我看过其他页面有相同的错误,没有什么对我有意义。

子查询本身可以工作,但当我将其抛入查询的其余部分时,我收到此错误:子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。

到目前为止,这是我的查询:

Select (Select (Sum(UnitPrice * Quantity) + Freight) as AmountPaid
    From [Order Details], Orders
    Group By [Order Details].OrderID, Freight), 
    OrderDate, [Order Details].OrderID, CompanyName, LastName 
From [Order Details], Customers, Employees
Inner Join Orders ON OrderID=Orders.OrderID

2 个答案:

答案 0 :(得分:0)

更改

(Sum(UnitPrice * Quantity) + Freight)

Sum((UnitPrice * Quantity) + Freight)

答案 1 :(得分:0)

删除内连接子句。

在最后添加条件如下:

其中table1.a = table2.a和table2.x = table3.y

了解如何定义表关系。