我在数据库中有一个 Stock 表:
基于库存表中的数据,我想输出更详细的数据:
库存数量表示商品 A 的总库存数量。
Location Qty 表示每个 Location 的 Item A 的总数量
子位置数量代表项目 A 的总数量,对于每个子位置的特定位置。
我想知道是否有一种方法可以在一个查询中获得详细的输出,或者我应该单独进行每个查询并编写一些代码来连接每个结果。
我可以写:
为了得到库存数量:
SELECT Item, Sum(Qty) as StockQty From Stock Group By Item;
为了得到位置数量:
SELECT Item, Location, Sum(Qty) as LocationQty From Stock Group By Item, Location;
为了获得子位置数量:
SELECT Item, Location, SubLocation, Sum(Qty) as SubLocationQty From Stock Group By Item, Location, SubLocation;
然后在代码隐藏中,编写一些代码以在数据 GridView 中输出。
实际上,我正在寻找一个返回一个数据表中的所有数据并将其绑定(bind)到 datagridview 的查询。
欢迎任何其他解决方案。
我在 AS400 中工作,但如果在其他 DBMS 中有解决方案,请回答,我会尝试使其在我的 DBMS 环境中工作(如果可能)。
最佳答案
试试这个:
SELECT t3.Item, t3.StockQty,
t2.Location, t2.LocationQty,
t1.SubLocation, t1.SubLocationQty
FROM (
SELECT Item, Location, SubLocation, Sum(Qty) as SubLocationQty
From Stock
Group By Item, Location, SubLocation) AS t1
JOIN (
SELECT Item, Location, Sum(Qty) as LocationQty
From Stock
Group By Item, Location
) AS t2 ON t1.Item = t2.Item AND t1.Location = t2.Location
JOIN (
SELECT Item, Sum(Qty) as StockQty
From Stock
Group By Item
) AS t3 ON t1.Item = t3.Item
关于c# - 一条SQL汇总不同的 'group by'级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36175652/