SELECT [Import].[Product Name 1], Sum([Import].[Product 1 Qty]) AS [SumOfProduct 1 Qty]
FROM [Import]
GROUP BY [Import].[Product Name 1];
我有这个,它正如我所需要的那样工作。我现在需要它为Products和Qtys 2 - 10做同样的事情。问题是我希望它从第一个添加到总数而不是在我的表中创建一个新列。我需要这个来生成报告和出口以进行结算和发货。
我正在从客户端导入包含客户信息的数据。它包含所有必需的运输信息以及我们应该发运的产品和每个客户的数量。每个客户最多可以拥有10件不同数量的产品。我的目标是生成此报告,其唯一目的是显示项目以及从库存中提取所需物品的数量。我们将使用此报告作为我们履行部门的“选票”。它还将用于向客户提供计费目的。我想要表中的Items和Qty的原因是为了导出回客户端。表中我只想要的两列是产品和订购产品的总数。
答案 0 :(得分:1)
您可以使用union all
执行此操作:
SELECT [Import].[Product Name], Sum([Import].[Product 1 Qty]) AS [SumOfProduct Qty]
FROM [Import]
GROUP BY [Import].[Product Name 1]
union all
SELECT [Import].[Product Name 2], Sum([Import].[Product 2 Qty]) AS [SumOfProduct Qty]
FROM [Import]
GROUP BY [Import].[Product Name 2]
union all
...
SELECT [Import].[Product Name 10], Sum([Import].[Product 10 Qty]) AS [SumOfProduct Qty]
FROM [Import]
GROUP BY [Import].[Product Name 10];
这假设每列产品不同。如果产品相同且您想要总数:
SELECT ProductName, sum(ProductQTY)
FROM (select [Product Name 1] as ProductName, [Product 1 Qty] as ProductQty
from [Import] union all
select [Product Name 2], [Product 2 Qty]
from [Import] union all
. . .
select [Product Name 10], [Product 10 Qty]
from [Import]
) i
GROUP BY ProductName;
两种情况下的...
表示您为其他产品添加了类似的代码,而不是文字" ..."。