Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL选择外键值相同的行_Sql_Relational Database - Fatal编程技术网

SQL选择外键值相同的行

SQL选择外键值相同的行,sql,relational-database,Sql,Relational Database,有人知道如何在不给出FK值的情况下,从具有相同FK值的表中选择所有行吗?我有一个仓库数据库。它在每个部门都有特定价值的部门和项目。我想通过一次查询选择项目总价值大于某个数字的部门。我希望这个查询是通用的-它应该汇总仓库中每个部门的项目的总价值,而不指定Secotr的数量,或者有多少部门有人知道如何做?我不需要一个完整的查询,只需要一种方式来告诉我的数据库它可以汇总某些部门的所有值。SectorID是外键,Item是表,ItemID是公钥,Value是Item的值我将使用查询组合。基本上,这个问题

有人知道如何在不给出FK值的情况下,从具有相同FK值的表中选择所有行吗?我有一个仓库数据库。它在每个部门都有特定价值的部门和项目。我想通过一次查询选择项目总价值大于某个数字的部门。我希望这个查询是通用的-它应该汇总仓库中每个部门的项目的总价值,而不指定Secotr的数量,或者有多少部门有人知道如何做?我不需要一个完整的查询,只需要一种方式来告诉我的数据库它可以汇总某些部门的所有值。SectorID是外键,Item是表,ItemID是公钥,Value是Item的值

我将使用查询组合。基本上,这个问题可以通过以下方式解决:

假设项表和扇区表中都存在ID列。让充当阈值T的值为单个查询返回的某个数字,如上所述:

通过连接Item.sectorid=sector.sectorid,其中Item.value>T上的sector和Item表,使用内部查询选择sector.sectorid、Item.itemid和Item.value 从上面的内部查询和GROUP BYSECTROID、GROUPBYITEMID中获得的结果的SumItem.value。 您似乎需要查询分组。这是非常基本的,因此我假设您对SQL非常陌生:

select SectorId, sum(itemValue) as TotalItemValue
from warehouse w 
group by SectorId
having sum(itemValue) > YOURVALUEHERE;
如果您需要扇区中的项目,则可以通过join或in获得:


从扇区中选择SectorID,其中按SectorID>100从项目组中选择SUMValue;工作很好。谢谢
select *
from warehouse w
where SectorId in (select SectorId
                   from warehouse
                   group by SectorId
                   having sum(itemValue) > YOURVALUEHERE
                  )