【问题标题】:Division of two counted values两个计数值的除法
【发布时间】:2019-08-25 19:38:09
【问题描述】:

大家好,我是 SQL 新手,我正在尝试按照以下代码的说明划分输出值

试过了,还是不行

SELECT COUNT(DATE_COMPLETE)/COUNT(SUB_SYS) AS FINAL 
FROM VW_TWCOMPLETION

我正在使用此代码,其中 SUB_SYS 的值类似于 A、B、C 并且 DATE_COMPLETE 是日期值,例如 11/19/2019 ,12/19/2019 , 13/19/2019

SELECT  SUB_SYS ,COUNT(SUB_SYS) AS TOTAL , COUNT(DATE_COMPLETE) AS COMPLETE
FROM VW_TWCOMPLETION
GROUP BY SUB_SYS
ORDER BY SUB_SYS

我想将我从计数中得到的输出除以COMPLETE/TOTAL 如何划分这些输出值?

Table Data

SUB_SYS         

MG1-AS-PWER-05-0

MG1-AS-PWER-06-0

MG1-AS-SPAL-05-0

MG1-AS-SPAL-07-0

TOTAL

6

11

4

17

12

COMPLETE

0

6

0

2

1

0

最后我得到的是下面的代码

0

0

0

0

0

【问题讨论】:

  • “试过了,但没用”。那是什么意思?你收到错误信息了吗?你得到错误的结果了吗?
  • 我得到的是“0”而不是多个输出。
  • 样本数据最好使用DDL + DML。请edit您的问题包括它,您当前的尝试和您想要的结果。更多详情,read this.

标签: sql sql-server tsql reporting-services


【解决方案1】:

你可以试试下面的

   with cte as
  (
   SELECT  SUB_SYS ,COUNT(SUB_SYS) AS TOTAL , COUNT(DATE_COMPLETE) AS COMPLETE
   FROM VW_TWCOMPLETION
   GROUP BY SUB_SYS

  ) select SUB_SYS, (COMPLETE*1.0) /NULLIF(TOTAL,0) as final from cte ORDER BY SUB_SYS

【讨论】:

  • Zaynul 我收到此错误“消息 1033,级别 15,状态 1,第 7 行 ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效,除非 TOP或 FOR XML 也被指定。”
  • @Mani 检查更新的答案或在外部查询中使用 order by 而不是在 cte 内
  • 代码正在运行,但我没有得到任何输出,它全为 0。顺便说一句,我将其更改为 COMPLETE/TOTAL
  • 在问题中分享你的表格数据,否则没有人能告诉你为什么你没有得到预期的输出
  • 希望对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-29
相关资源
最近更新 更多