Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何同时选择两个选择和_Sql - Fatal编程技术网

Sql 如何同时选择两个选择和

Sql 如何同时选择两个选择和,sql,Sql,我试着用这个公式 像这样 sum((freight/sum(Quantity))*Quantity) for lineitemfright 我试过的代码没有求和我想要的一个值 select sum( ( Northwind.dbo.orders.Freight / ( select SUM( Northwind.dbo.[Order Details].Quantity

我试着用这个公式

像这样

sum((freight/sum(Quantity))*Quantity) for lineitemfright
我试过的代码没有求和我想要的一个值

select sum(
     (
        Northwind.dbo.orders.Freight 
        /
        (
            select SUM(
                Northwind.dbo.[Order Details].Quantity
            )
            from Northwind.dbo.[Order Details] 
            where Northwind.dbo.[Order Details].OrderID = Northwind.dbo.orders.OrderID
        )
        *
        Northwind.dbo.[Order Details].Quantity
    )
) as LineItemFreight 
from Northwind.dbo.[Order Details] 
inner join Northwind.dbo.Orders 
on Northwind.dbo.[Order Details].OrderID= northwind.dbo.Orders.OrderID
where Northwind.dbo.orders.ShippedDate is not null
然而,它不断得到一个错误的说法

Msg 130, Level 15, State 1, Line 5
Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
 sum((freight/sum(Quantity))*Quantity)

我试图在不使用分组依据的情况下求和一个值。

使用变量并执行此操作

  @DECLARE @tEMPSUM bigint

    SET @TEMPSUM=select SUM(Northwind.dbo.[Order Details].Quantity)from Northwind.dbo.[Order Details] 
            where Northwind.dbo.[Order Details].OrderID = Northwind.dbo.orders.OrderID
然后


你用的是哪一个数据库?我用的是一个叫Northwind的数据库。当我计算出一个总数时,我得到了多个数字,我只想得到一个数字。选择Northwind.dbo.orders.Freight/选择SUMNorthwind.dbo。[订单详细信息]。来自Northwind.dbo的数量。[订单详细信息]其中Northwind.dbo。[订单详细信息]。OrderID=Northwind.dbo.orders.OrderID*Northwind.dbo。[订单详细信息]数量为来自Northwind.dbo的LineItemFreightNorthwind.dbo上的内部联接Northwind.dbo.Orders。[订单详细信息].OrderID=Northwind.dbo.Orders.OrderID,其中Northwind.dbo.Orders.ShippedDate不是空的。我指的是哪个数据库供应商mysql、sqlserver、oracle、postgres等。解决方案可能取决于这一事实。
select sum((Northwind.dbo.orders.Freight / @tEMPSUM)*Northwind.dbo.[Order Details].Quantity) as LineItemFreight 
from Northwind.dbo.[Order Details] 
inner join Northwind.dbo.Orders 
on Northwind.dbo.[Order Details].OrderID= northwind.dbo.Orders.OrderID
where Northwind.dbo.orders.ShippedDate is not null