Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.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
如何在一个mysql查询中获得所有这些结果?_Mysql_Sql - Fatal编程技术网

如何在一个mysql查询中获得所有这些结果?

如何在一个mysql查询中获得所有这些结果?,mysql,sql,Mysql,Sql,我需要从MySQL输出5个数字。它必须在一个查询中 我有一张名为recursos_humanos的桌子 我需要的第一个数字是recursos_humanos中指定给一个特定项目的每一行的“monto”列的总和 下面是如何获得每行的所有“蒙托” SELECT `recursos_humanos`.`monto` FROM `recursos_humanos`, `recursos_asignados` WHERE `recursos_humanos`.`id`=`recur

我需要从MySQL输出5个数字。它必须在一个查询中

我有一张名为recursos_humanos的桌子

我需要的第一个数字是recursos_humanos中指定给一个特定项目的每一行的“monto”列的总和

下面是如何获得每行的所有“蒙托”

SELECT `recursos_humanos`.`monto` 
  FROM `recursos_humanos`,
       `recursos_asignados` 
 WHERE `recursos_humanos`.`id`=`recursosh_asignados`.`recursoID` 
   AND `recursosh_asignados`.`proyectoID`=’1’
我需要的第二个数字来自表“recursos”。我想要“recursos”中指定给一个特定项目的每一行的列“monto”的总和(是的,与第一个相同,但区别在于不需要内部联接来获取值)

下面是如何获得“recursos”中每行的所有“monto”

SELECT `recursos`.`monto` 
  FROM `recursos` 
 WHERE proyecto='1'
第三个数字是第一个数字+第二个数字+mano_de_obra

您可以通过以下查询获得“mano_de_obra”:

SELECT `proyecto`.`mano_de_obra` 
  FROM `proyecto` 
 WHERE `did`='1'
第四个数字是“mano_de_obra”,所以你可以像我在第三点告诉你的那样理解它

最后一个数字是:第三个数字%第四个数字


提前感谢您的帮助:)

假设您的基本查询是正确的,如果您只使用一些旧的方式,那么解决方案很简单

变量会使我们更容易抓住过去的数字,比如第三种情况,数字等于第一个+第二个+另一个,最后一种情况,数字等于第三个+第四个

使用
UNION
语句将多个
SELECT
语句的结果合并为一个结果

我注意到在您提供的SQL中,在找到正确的列后,您没有使用
SUM()
。我在我认为有必要的地方加了一句

SET @One = (SELECT SUM(`recursos_humanos`.`monto`)
    FROM `recursos_humanos`,`recursos_asignados` 
    WHERE `recursos_humanos`.`id`=`recursosh_asignados`.`recursoID` 
    AND `recursosh_asignados`.`proyectoID`=’1’);

SET @Two = (SELECT SUM(`recursos`.`monto` )
    FROM `recursos` 
    WHERE proyecto='1');

SET @Four = (SELECT `proyecto`.`mano_de_obra` 
    FROM `proyecto` 
    WHERE `did`='1');

SET @Three = (@Four + @One + @Two);

SET @Five = (SELECT MOD(@Three, @Four));

SELECT @One
UNION ALL
SELECT @Two
UNION ALL
SELECT @Three
UNION ALL 
SELECT @Four
UNION ALL
SELECT @Five

为了澄清,您希望将所有五个数字打印出来,就像它们是单个查询的结果一样<代码>联合将有助于实现这一点,但不一定所有事情都必须在一次选择中完成。