如何列出一个表中的帖子并同时从另一个表中汇总一个金额?

| 首先,希望我的英语还不错。 我有一个我无法解决的问题。 问题是我正在考虑一个订单处理系统。 到目前为止,我有一张表格,其中每个文章注册都属于这样的顺序 Tbl_orderLines id,prod_week,article_id 然后我还有一个och表,其中tbl_orderLines中每一行的数量都像这样 Tbl_库存 orderline_id,article_id,金额 现在两个表中的article_id都相同(双篇),以为这样做会更容易? 我想要的是在特定时间获取每个特定文章的可用数量。 因此,我希望能够列出Tbl_orderLInes中的每一行,并通过联接获得每一行的金额,但是!我还想获取特定文章的总金额。因此,我想对Tbl_inventory中的amount列求和,其中article_id与tbl_orderLines中的行相同。 这就是我现在所拥有的 Tbl_orderLines
id         prod_week        article_id    
 1           1130              2   
 2           1129              5          
 3           1129              2     
 4           1128              2   
Tbl_库存
orderLine_id         article_id      amount     
 1                       2               1          
 2                       5               2          
 3                       2               1          
 4                       2               2          
结果应该是这样的
id         prod_week        article_id      amount     TotalAmount
 1           1130              2               1          4
 2           1129              5               2          2
 3           1129              2               1          3
 4           1128              2               2          2
不知道是否有可能理解我的问题? 我正在使用MSSQL。 非常感谢您的帮助。
已邀请:
我相信您的结果集的第一部分是通过以下方式实现的。
SELECT
  [order_line].id,
  [order_line].prod_week,
  [order_line].article_id,
  [inventory].amount
FROM
  Tbl_orderLines             AS [order_line]
INNER JOIN
  Tbl_inventory              AS [inventory]
    ON [inventory].orderline_id = [order_line].id
但是,我对TotalAmount列不确定100%。我最好的猜测是,您想要...之前所有星期中具有相同article_id的金额总和?
SELECT
  [order_line].id,
  [order_line].prod_week,
  [order_line].article_id,
  [inventory].amount,
  SUM([historic_inventory].amount) AS TotalAmount
FROM
  Tbl_orderLines             AS [order_line]
INNER JOIN
  Tbl_inventory              AS [inventory]
    ON [inventory].orderline_id = [order_line].id
INNER JOIN
  Tbl_orderLines             AS [historic_orders]
    ON [historic_orders].article_id = [order_line].article_id
    AND[historic_orders].prod_week <= [order_line].prod_week
INNER JOIN
  Tbl_inventory              AS [historic_inventory]
    ON [historic_inventory].orderline_id = [historic_order_line].id
GROUP BY
  [order_line].id,
  [order_line].prod_week,
  [order_line].article_id,
  [inventory].amount
我无法完全得到您想要的东西,但我相信您可以尝试类似的方法来增强实现您的目标的想法。
CREATE TABLE [dbo].[inventory](
    [id] [int] NULL,
    [article_id] [int] NULL,
    [amount] [int] NULL
) ON [PRIMARY]

GO

CREATE TABLE [dbo].[orderLines](
    [id] [int] NULL,
    [prod_week] [int] NULL,
    [article_id] [int] NULL
) ON [PRIMARY]

GO

SELECT ol.id, 
       ol.prod_week, 
       ol.article_id, 
       i.amount, 
       SUM(amount) OVER (PARTITION BY i.article_id) AS totalAmount
  FROM dbo.orderLines AS ol, dbo.inventory AS i
 WHERE ol.id = i.id
 ORDER BY ol.id

要回复问题请先登录注册