使用表达式中的一个列值创建表

时间:2013-05-29 16:46:59

标签: sql ms-access ms-access-2003

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

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中提取它们。

我做错了什么?我知道它必须简单。

1 个答案:

答案 0 :(得分:0)

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

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

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

并以与[付款查询总额]

相同的方式将其包含在您的查询中