-2
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 的原因是为了导出回客户端。表中我想要的唯一 2 列是产品和订购的产品总数。

4

1 回答 1

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;

在这...两种情况下都意味着您为其余产品输入了类似的代码,而不是文字“...”。

于 2013-08-30T13:56:21.670 回答