sql - 在 SQL 中对多个 SELECT 结果执行数学运算

标签 sql sql-server database

类似这个问题How does one perform math on multiple SELECT results?

不能让我的工作。

我想确定按时发送的货件的百分比。

为此,我知道我必须:

1) 选择发送的总货件。

Select COUNT(*) AS TotalShipments From tbl_LISC

2) 选择准时

发送的总货件
Select COUNT(*) AS TotalOnTime From tbl_LISC WHERE tbl_LISC.LISC = 100

3) 将 2 个结果相除并乘以 100 ((TotalOnTime/TotalShipments)*100 )

以线程的回答为例我试过了

SELECT TotalShipped, TotalOnTime, TotalShipped/TotalOnTime as LISC
FROM (SELECT COUNT(Select *From tbl_LISC) AS TotalShipped,
             COUNT(*) as TotalOnTime
          FROM tbl_LISC
          WHERE LISC = 0) 

最佳答案

您真正的问题是整数与 float 学。当表达式的两个数字都是整数时,结果也将是一个整数:

select 2/3 -- 0

因此,为了保持小数精度,只需将表达式中的数字之一设为小数/浮点值:

select 2.0/3 -- 0.666666

所以,试穿这个尺寸:

select
 sum(iif(tbl_LISC.LISC = 100, 1, 0)) as OnTime
,count(*) as Total
,sum(iif(tbl_LISC.LISC = 100, 1.0, 0.0)) / nullif(count(*), 0) as Percentage
from tbl_LISC as l 

关于sql - 在 SQL 中对多个 SELECT 结果执行数学运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30134176/

相关文章:

mysql - SQL Server 是否提供类似于 MySQL 的 ON DUPLICATE KEY UPDATE 的功能

sql - 在数据库上生成动态字段并为表单生成动态字段

java - DriverManager.getConnection();如何判断是用户名/密码错误还是驱动程序无法连接数据库?

java - 我不知道如何在同一个程序中执行多个查询

mysql - 在 mysql 的触发器中调用函数

php - 用于从 SET 列中获取最常用项目的 SQL 查询

mysql - 如何根据丰度对行进行排序?

sql-server - SSRS : Is it possible for an action to load a subreport?

php - 映射相互不一致

sql - postgresql 从选择中插入