如何解决如何列出一个表中的帖子并同时从另一个表中汇总一个金额?
| 首先,希望我的英语还不错。 我有一个我无法解决的问题。 问题是我正在考虑一个订单处理系统。 到目前为止,我有一张表格,其中每个文章注册都属于这样的顺序 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_orderLinesid 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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。