【发布时间】:2021-09-14 18:26:27
【问题描述】:
我有两个 SQL 计数查询,它们本身工作正常,它们是:
SELECT count(*) AS TOTAL_PROGRESS_BY_LINE_
FROM dbo.PID_Components_PROCESS_LINES
WHERE ISOGEN_LINE_PROGRESS_ = 'C'
RESULT: TOTAL_PROGRESS_BY_LINE_ = 26
SELECT count(*) AS TOTAL_LINES_BY_PROJECT_
FROM dbo.PID_Components_PROCESS_LINES
WHERE PROJECT_NUMBER_ = 'PJ001234'
RESULT: TOTAL_LINES_BY_PROJECT_ = 130
现在如何添加到查询中以获得 26/130 的百分比??
我有一个关于如何获取百分比的新查询。
这里是:
SELECT ISOGEN_LINE_PROGRESS_, PROJECT_NUMBER_,
CASE
WHEN ISOGEN_LINE_PROGRESS_ = 'A' THEN 'NOT IN MODEL'
WHEN ISOGEN_LINE_PROGRESS_ = 'B' THEN 'ROUGHED IN'
WHEN ISOGEN_LINE_PROGRESS_ = 'C' THEN 'PARTIAL CHECK'
WHEN ISOGEN_LINE_PROGRESS_ = 'D' THEN 'READY FOR FINAL CHECK'
WHEN ISOGEN_LINE_PROGRESS_ = 'E' THEN '100% COMPLETE'
WHEN ISOGEN_LINE_PROGRESS_ = '0' THEN 'ISSUE FOR CONSTRUCTION'
END AS PROGRESS_PER_LINE_
FROM PID_Components_PROCESS_LINES
WHERE PROJECT_NUMBER_ = 'PJ001234'
ORDER BY ISOGEN_LINE_PROGRESS_
这将返回以下结果:
ISOGEN_LINE_PROGRESS_ PROJECT_NUMBER_ PROGRESS_PER_LINE_
A PJ001234 NOT IN MODEL
B PJ001234 ROUGHED IN
C PJ001234 PARTIAL CHECK
D PJ001234 READY FOR FINAL CHECK
如果我从查询中删除Distinct,显然每个进度级别都有多行。如何在上述不同的查询中添加一个列,以在最后一列中显示与总行数相比每个进度级别的速率或百分比?
【问题讨论】:
-
您要划分的值是整数。你想要一个整数结果,即
0,百分比作为整数,即20,还是其他的东西(0.2000,20.00,'Not much.')? -
我希望结果为 20.00。很抱歉,我不熟悉我认为“更高级”的查询。
-
我计算的列是 varchar 数据类型,如果这有影响的话?
-
请将新问题放入
新问题。如果您更改最初的问题,标题、cmets 和答案将没有任何意义,如果您尝试将另一个问题插入第一个问题,这一切都会非常混乱。
标签: sql sql-server tsql divide