sql - 无法在报告中计算平均天数?

标签 sql oracle sqlplus

你好,我正在尝试编写一个返回此报告的 sql 语句:

-------- Supplier's Order Status Report -------- Page:


Supplier Supplier                  Order Order    Receive     Number
  Code Name                        No. Date     Date       of Days STATUS
---------- -------------------- ---------- -------- -------- --------- --------
   101 ACE Auto                   1000 04/03/15 04/06/15      3.00 Complete
                                  1001 04/03/15 04/05/15      2.00 Complete
                                  1002 04/04/15 04/05/15      1.00 Complete
                                  1003 04/04/15 04/05/15      1.00 Complete
                                  1004 04/03/15 04/06/15      3.00 Complete
                                  1013 04/13/15                    Open
********** ********************                              ---------
Avg Days                                                          2.00

   102 Better Auto Buys           1005 04/04/15 04/04/15       .00 Complete
                                  1006 04/03/15 04/06/15      3.00 Complete
                                  1010 04/13/15                    Open
                                  1011 04/13/15 04/13/15       .00 Complete
********** ********************                              ---------
Avg Days                                                          1.00

   103 Cars R Us                  1007 04/05/15 04/07/15      2.00 Complete
                                  1012 04/13/15                    Open
********** ********************                              ---------
Avg Days                                                          2.00

   104 Delta Parts                1008 04/05/15 04/06/15      1.00 Complete
                                  1009 04/03/15 04/05/15      2.00 Complete
********** ********************                              ---------
Avg Days                                                          1.50

这是我的:

SET LINESIZE 100
TTITLE CENTER "------SUPPLIER'S ORDER STATUS REPORT------- Page:"

COLUMN SUPPLIER_CODE HEADING "Supplier|Code"
COLUMN SUPPLIER_NAME HEADING "Supplier|Name"
COLUMN ORD_NUM HEADING "Order|No."
COLUMN ORD_DATE HEADING "Order|Date"
COLUMN ORD_RECDATE HEADING "Recieve|Date"

BREAK ON SUPPLIER_CODE ON SUPPLIER_NAME 
SELECT S.SUPPLIER_CODE, SUPPLIER_NAME, ORD_NUM, ORD_DATE, ORD_RECDATE,   (ORD_RECDATE-ORD_DATE) AS "Number|of Days", DECODE(ORD_RECDATE, NULL, 'OPEN','COMPLETE') AS STATUS
FROM SUPPLIER S, ORD O
WHERE S.SUPPLIER_CODE = O.SUPPLIER_CODE
ORDER BY S.SUPPLIER_CODE;

我的问题是每当我尝试计算平均天数时,在 sqlplus 或 sql developer 中什么都没有发生? p.s 我知道它不在我遗漏的代码中。

最佳答案

AVG(ORD_RECDATE-ORD_DATE) OVER (PARTITION BY s.supplier_code) AS avg_days 添加到您的 SELECT 子句

关于sql - 无法在报告中计算平均天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29905020/

相关文章:

mysql - SQL如何选择本周内其id在右表中出现次数少于5次的左表?

sql - SUM()函数sql有上限

oracle - 设置数字格式以在 oracle 中显示

sql - 对于列定义为 NUMBER(4,2) 的值 100,插入失败

bash - 在 shell 脚本中连接到 sqlplus 并运行 SQL 脚本

sql - 将批处理文件中的参数传递给 sqlplus 脚本

php - 在 CakePHP 3 中,andWhere()、orWhere()、where() 方法的计算顺序是什么?

SQL 连接来识别组成员

c# - 在依赖 Oracle 的 Windows 启动时自动启动 Windows 服务

sql - 为什么 rlwrap 会因冗余输出而使屏幕变得困惑?