php - 如何在一个查询中显示正常和分组项的列表?

标签 php mysql

我有一个表,其中包含一些数据,我需要显示到列表中,但一些数据(或项目)需要隐藏,然后分组为唯一元素,而不是显示每个数据

这是打印收据,我需要出示用于修理汽车或自行车的元素或 Material list 。

这是我现在的代码,我的客户昨天告诉我有关分组项目的信息,现在我需要更改它,但我对如何做到这一点有疑问......也许可以进行两个 SELECT?


//mantenimiento is the row that have the 1 or 0

$sql = $conn->prepare("SELECT nombre, vendido, ventaUnitaria, descuento, referenciaVenta, mantenimiento
FROM COMPRA WHERE id = :id");
$id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_STRING);
$sql->bindParam(':id', $id, PDO::PARAM_STR);
$sql->execute();
while($row = $sql->fetch(PDO::FETCH_ASSOC)) {

根据示例,表中有这些项目(如现在所示):

链条固定 --- 100 美元 干净 --- 12 美元 * 洗车 --- 35 美元 * 过滤器 --- 10 美元 * 油脂 --- 7 美元 * 但在列表中只需要显示这些:

链条固定 --- 100 美元 预防性维护 --- 64 美元

在表中这些项目有一个额外的行,数字为 1,其他项目有 0

最佳答案

听起来您想显示一些详细项目,但然后总结其他项目并将它们呈现为单个项目。您可以通过执行两个单独的 SELECT 查询的 UNION 来显示两种类型的结果。例如:

SELECT description, price from the_table
    WHERE id = ? and description = 'list-individual-charge-condition'
UNION
SELECT 'Preventive Maintenance' as description, sum(price) as price from the_table 
    WHERE  id = ? and description = 'aggregate-charge-condition'
;

当然,您需要选择适合您情况的列,并指定两个 WHERE 子句,这两个子句将确定哪些费用将单独列出以及哪些费用将汇总为预防性维护。

关于php - 如何在一个查询中显示正常和分组项的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57236414/

相关文章:

php - laravel 将未定义的 url 路由到特定 Controller

php - 在 PHP 中通过 GSM 调制解调器建立和接听电话

mysql - 如何在 mac 上使用 MAMP 在 mysql 中禁用严格模式

php - laravel eloquent 在 varchar 中写入新行

php - 重定向输出时无法终止子进程

php - 如何在 msaccess php 中将列值设置为变量

php - 如何在 REDHAT 5 上安装 PHP SOAP

mysql - 并发时增加相同计数器

mysql - Mysql 列中所有字符的 ASCII 总和

mysql - 运行耙数据库 :migrate in Rails fails (table already exists) using mysql