- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在开发一个学校网站,但遇到了问题。我必须对不同表中的值与首页上显示的值进行求和。
让我进一步解释一下:
在此屏幕截图中,您会看到包含以下内容的标题:计划和执行
这是我用来填充表的简单查询和代码:
<?php
$query = mysqli_query($conn, "SELECT * FROM `projecten`");
while ($row = mysqli_fetch_array($query)) {?>
<tr class="active">
<td style="display:none;" class="id"><?php echo $row['ID'];?></td>
<td><?php echo $row['Naam'];?></td>
<td><?php echo $row['Plan'];?></td>
<td><?php echo $row['Do'];?></td>
<td>
<a class="btn btn-default btn-success" href="ExpandedProject.php?id=<?php echo $row['ID'];?>">Expand</a>
<a class="btn btn-default btn-danger" href="Delete_Project.php?id=<?php echo $row['ID'];?>">Verwijderen</a>
</td>
</tr>
<?php } ?>
现在我尝试做的事情:
SQL = SELECT *, sum(tasks.Plan) FROM `projecten`,`tasks`
这有效,但因为我有 1 个表用于不同项目的所有任务,所以这将添加不属于项目的任务。所以我又删除了这个。
我还尝试使用上面的查询,然后添加一个在任务表中过滤项目 ID 的位置。
我的问题是如何制作它,以便它将 Plan 和 Do 相加并正确显示这些值并按项目 ID 进行过滤
只是想让你知道,在 PHP 方面我有两只左手,所以如果代码中有一些错误,我很抱歉:)
我还想添加更多我拥有的 table 的图片,但由于我的声誉,我无法添加它们。
感谢您的帮助!
最佳答案
你可以这样做:
SELECT p.id,
p.naam,
coalesce(sum(t.plan),0) plan,
coalesce(sum(t.do),0) do
FROM projecten p
LEFT JOIN tasks t
ON p.id = t.projectid
GROUP BY p.id,
p.naam
LEFT JOIN
是一个外连接,它将链接两个表中的记录,并具有附加功能:如果没有找到给定 的相应 任务 记录, projecten 记录,projecten 记录仍将出现在结果中,但通常为任务记录中的列的值为 null
值。
group by
子句将聚合多个任务记录,因此每个 projecten 记录仍然只能获得一条记录。 sum
表达式告诉 SQL 引擎如何进行聚合。
包含coalesce
函数是为了确保没有任何tasks记录的projecten记录不会显示null
表示计划和执行,但改为 0。如果您更喜欢这种情况下的空白,请删除 coalesce(..., 0)
,只留下 sum(...)
。
关于php - 对查询中的值求和并将其显示在按项目 ID 过滤的表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39548339/
出现在 python 2.7.8 中。 3.4.1 不会发生这种情况。 示例: >>> id(id) 140117478913736 >>> id(id) 140117478913736 >>> id
好吧,我对动态创建的控件的 ID 很困惑。 Public Class TestClass Inherits Panel Implements INamingContainer
我收到下面的错误,说有堆栈溢出。发生这种情况是因为带有 IN (id, id, id...id) 的 SQL 语句有大量参数。有没有什么办法解决这一问题?这是在我使用 Eclipse 的本地环境中发生
为什么 CPython(不知道其他 Python 实现)有以下行为? tuple1 = () tuple2 = ()
为什么 CPython(对其他 Python 实现一无所知)有以下行为? tuple1 = () tuple2 = ()
非常简单的问题:当我有一个持久对象时,它通常有一个名为 ID 的属性(对于抽象类)。 那么..命名约定是ID还是Id? 例如。 public int ID { get; set; } 或 public
知道为什么我会收到此错误,我已经尝试了所有命名约定(小写/大写) 我正在使用 Vaadin,这是我的代码片段: public class Usercontainer extends BeanI
为什么 CPython(不知道其他 Python 实现)有以下行为? tuple1 = () tuple2 = ()
我需要改变表的所有主键 UPDATE TODO SET id = id + 1 但我做不到(Demo 来自 Ahmad Al-Mutawa 的回答)描述了原因。主键不能这样改。 我也不能根据这是 sq
我正在尝试列出与用户相关的讨论列表。 想象一下,如果你愿意的话: posts -------------------------------------------------------------
我有一个表,其中包含一些具有自己的 ID 和共享 SKU key 的文章。我尝试使用左连接进行查询,并使用组结果获取从查询返回的所有 id。 我的数据结构是这样的: id - name -
在下表People中: id name 1 James 2 Yun 3 Ethan 如果我想找到最大 ID,我可以运行此查询 select max(id) id from People; 结果是
我正在产品页面上创建评论模块,其中显示垃圾评论选项,并显示 onclick 显示和隐藏弹出窗口。现在它在单个评论中工作正常但是当评论是两个时它同时打开两个因为类是相同的。现在这就是为什么我想要获取父
根据 REST 哲学,PUT操作应该(取自维基百科): PUT http://example.com/resources/142 Update the address member of the co
我想知道如何在使用 PHP 或 JavaScript 进行身份验证后从 Google Analytics 获取 Property Id、View Id 和 Account Id?因为我希望能够将它们存
我想使用所选按钮的 ID 进行删除。但我不知道如何从中获取/获取 id。我尝试了 this.id 但不起作用。 这是我创建按钮的地方: var deleteEmployer= document.cre
我有一个具有以下结构的表“表” ID LinkedWith 12 13 13 12 14 13 15 14 16
请不要在未阅读问题的情况下将问题标记为重复。我确实发布了一个类似的问题,但 STACKOVERFLOW 社区成员要求我单独重新发布修改后的问题,因为考虑到一个小而微妙的修改,解决方案要复杂得多。 假设
在 Android Studio 中,我创建了一个 Person.java 类。我使用Generate 创建了getter 和setter 以及构造函数。 这是我的 Person.java 类: pu
如何在 jQuery 中制作这样的东西: //这是显示的主体 ID //当我悬停 #hover-id 时,我希望 #principal-id 消失并更改 。但是当我将光标放在 #this-id 上时
我是一名优秀的程序员,十分优秀!