0

有谁知道如何从具有相同 FK 值的表中选择所有行而不给出其值?我有一个带仓库的数据库。它在每个部门中都有部门和具有一定价值的项目。我想通过单个查询选择项目总价值大于某个数字的部门。而且我希望查询是通用的 - 它应该总结仓库每个部门的项目的总体价值(不指定secotr的数量或有多少部门)有人知道怎么做吗?我不需要完整的查询,只需要一种方式来说明我的数据库可以总结某些部门的所有值。SectorID 是外键,Item 是表(ItemID 作为公钥,Value 作为项目的值)

4

2 回答 2

0

我会使用查询的组合。基本上,这个问题可以解决如下:

假设 Item 和 Sector 表中都存在 ID 列。让作为阈值T的值(如上所述由单个查询返回的某个数字):

  1. 使用内部查询通过连接 Item.SectorID = Sector.SectorID 上的 Sector 和 Item 表来选择扇区.sectorid、Item.itemid 和 Item.value 其中 Item.value > T
  2. Sum(Item.value) 对从上面的内部查询和 GROUP BY(SECTORID)、GROUPBY(ITEMID) 获得的结果。
于 2013-07-14T17:54:08.970 回答
0

你似乎想要一个group by查询。这是非常基本的,所以我假设您对 SQL 很陌生:

select SectorId, sum(itemValue) as TotalItemValue
from warehouse w 
group by SectorId
having sum(itemValue) > YOURVALUEHERE;

如果您想要扇区中的项目,那么您可以使用 ajoinin

select *
from warehouse w
where SectorId in (select SectorId
                   from warehouse
                   group by SectorId
                   having sum(itemValue) > YOURVALUEHERE
                  )
于 2013-07-14T17:56:30.370 回答