1

我正在尝试创建一个可用于应收帐款的表。这是一个非常简单的表格,只需要订单的总成本、已支付的金额以及订单号本身。我正在尝试调整用于生成报告的现有查询来做到这一点。

SELECT DISTINCTROW 
      Round(Sum(nz([Quantity]*[UnitPrice]*(1-[Discount])*100)/100)+
            [RushCharge],2) AS TotalCost, 
      [Sum Of Payments Query].[Total Payments], 
      [Order Details].RushCharge AS RushCharge,
      Orders.OrderID,
      Orders.Cancel,
      Orders.PriceQuote 
INTO test2
FROM Orders
LEFT JOIN [Sum Of Payments Query] 
             ON Orders.OrderID = [Sum Of Payments Query].OrderID
GROUP BY Orders.OrderID,
         Orders.Cancel,
         [Sum Of Payments Query].[Total Payments],
         Orders.PriceQuote

问题是数据库的时代,订单的总成本总是动态生成的,而不是存储在某个地方(即使只有一种形式可以改变它,但仍然如此),这意味着我必须求助于相同的方法。Round 函数计算订单的总成本,它可以在其他地方工作,但在这里,它只是提示我输入值,而不是从 Orders 中提取它们。

我究竟做错了什么?我知道它必须是简单的。

4

1 回答 1

0

我猜[数量],[单价]和[折扣]和RushCharge是[订单详情]表中的字段,不包含在查询中。

您可以创建一个查询,返回每个订单的总成本

select orderid,
       Round(Sum(nz([Quantity]*[UnitPrice]*(1-[Discount])*100)/100)+
            [RushCharge],2) AS TotalCost from 
from [order details]
group by orderid

并以与 [支付查询总和] 相同的方式将其包含在您的查询中

于 2013-05-29T17:00:16.113 回答