IFNULL(t2.totalAmount,0) as totalAmount mysql中t2.totalAmount转换1位小数点
时间: 2023-12-30 09:23:14 浏览: 93
以下是在MySQL中将t2.totalAmount转换为1位小数点的示例:
```sql
SELECT name, ROUND(IFNULL(t2.totalAmount, 0), 1) AS totalAmount, IFNULL(freeze_amount, 0) AS freeze_amount FROM `user` WHERE IFNULL(freeze_amount, 0) >= 0
```
这个查询将t2.totalAmount转换为1位小数点并命名为totalAmount,然后将结果与其他列一起检索出来。
相关问题
select IFNULL(sum(give.giveAmount),0) from( select IF(sum(IF(pay.receipt_type!=3,pay.pay_amount,0))-x.total_amount>0,sum(IF(pay.receipt_type!=3,pay.pay_amount,0))-x.total_amount,0) as 'giveAmount' from po_order x LEFT JOIN po_order_pay pay on x.id=pay.po_order_id where x.is_valid = 1 and x.pay_status = 3 AND x.STATUS = 2 AND x.net_retail_amount>0
这个 SQL 查询语句的作用是查询 `po_order` 和 `po_order_pay` 两个表中所有满足条件的记录的 `giveAmount` 字段的总和。具体来说,这个查询语句会在 `po_order` 表中根据一定条件筛选出记录,然后与 `po_order_pay` 表进行联合查询,查询出对应的 `pay_amount` 字段的值。根据这些值和 `total_amount` 字段的值计算出 `giveAmount` 字段的值,如果 `giveAmount` 大于 0,则将其加入到结果集中。如果结果为 NULL,则将其转换为数字类型 0。最后,将所有 `giveAmount` 的值求和,得到最终的结果。
select (select 0+cast(IFNULL(sum(x.total_amount),0)AS CHAR) from po_order x where x.is_valid = 1 and x.status=2 and x.pay_status= 3 <if test="dto.shopClassRecordId != null and dto.shopClassRecordId != ''"> and x.shop_class_record_id = #{dto.shopClassRecordId} </if> )AS totalAmount, 0+cast(IFNULL(sum( CASE WHEN (b.pay_type =2 or b.pay_type =3 or b.pay_type =99 )and b.pay_amount>0 THEN b.pay_amount ELSE 0 END ),0)AS CHAR) AS scanAmount, 0+cast(IFNULL(sum( CASE WHEN b.pay_type =4 and b.pay_amount>0 THEN b.pay_amount ELSE 0 END ),0)AS CHAR) AS cardPayAmount, 0+cast(IFNULL(sum( CASE WHEN b.pay_type =1 and b.pay_amount>0 THEN b.pay_amount ELSE 0 END ),0)AS CHAR) AS cashAmount, (select 0+cast(IFNULL(sum(x.pay_amount),0)AS CHAR) from po_order_pay x left join po_order y on x.po_order_id = y.id where x.is_valid = 1 and x.pay_status = 3 and x.receipt_type = 3 and x.is_auto_confirm =1 and x.pay_type=1 AND y.is_valid = 1 AND y.pay_status = 3 <if test="dto.shopClassRecordId != null and dto.shopClassRecordId != ''">
这段代码是一个 SQL 查询语句,它的具体含义如下:
首先,这个查询语句包含了四个 SELECT 语句,每个 SELECT 语句都计算了一个不同的值并将其命名为一个别名。
第一个 SELECT 语句的作用是查询满足一定条件的 po_order 表中的记录,并计算这些记录中 total_amount 字段的总和。这个 SELECT 语句中还包含一个子查询,用于限制查询结果的范围。
第二个 SELECT 语句的作用是查询满足一定条件的 po_order_pay 表中的记录,并计算这些记录中 pay_amount 字段的总和。这个 SELECT 语句中还包含一个 LEFT JOIN 子句,用于将 po_order_pay 表与 po_order 表进行关联,并限制查询结果的范围。
第三个 SELECT 语句的作用是查询满足一定条件的 po_order_pay 表中的记录,并计算这些记录中 pay_amount 字段的总和。这个 SELECT 语句中的条件限制了只查询 pay_type 字段为 4 的记录。
第四个 SELECT 语句的作用是查询满足一定条件的 po_order_pay 表中的记录,并计算这些记录中 pay_amount 字段的总和。这个 SELECT 语句中的条件限制了只查询 pay_type 字段为 1 的记录。
最终,这个查询语句将四个 SELECT 语句的结果作为一个结果集返回,并将它们分别命名为 totalAmount、scanAmount、cardPayAmount 和 cashAmount。其中,totalAmount 表示 po_order 表中 total_amount 字段的总和,scanAmount 表示 po_order_pay 表中 pay_type 为 2、3 或 99 的记录的 pay_amount 字段的总和,cardPayAmount 表示 po_order_pay 表中 pay_type 为 4 的记录的 pay_amount 字段的总和,cashAmount 表示 po_order_pay 表中 pay_type 为 1 的记录的 pay_amount 字段的总和。
阅读全文