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

问题描述

| 首先,希望我的英语还不错。 我有一个我无法解决的问题。 问题是我正在考虑一个订单处理系统。 到目前为止,我有一张表格,其中每个文章注册都属于这样的顺序 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,[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,[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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...