PL SQL:查询以计算字段的差异值

问题描述

| 我必须对数据库中实体的数量进行计数,我必须获取出现的实体的注册数量
ENTITY OVERALL DATE HOUR
====== ===== ==== ====
ENT1 5 20100318 12:00
ENT2 20 20100318 12:00
ENT3 12 20100318 12:00

CURSOR1
SELECT distinct(rp.cod_entidad),YYYYYYYYY,to_date(to_char(SYSDATE,\'YYYYMMDD\'),\'YYYY-MM-DD\') as fecha_pago,to_char(sysdate,\'hh-mi-ss\') as hora_pago
FROM registry rp,product pc
where pc.nro_solicitud = rp.nro_solicitud
and pc.resp_2= \'OK\'
and pc.resp_1= \'OK\'
    

解决方法

        在要唯一的列上使用ѭ1。 为了不让PL-SQL抱怨,您必须使用一个聚合函数,该函数将为其他列选择一个值。 我选择了
MAX()
,但是
MIN()
或不存在的
whatever()
也可以。
SELECT 
  rp.cod_entidad,count(*) as rowcount,-- number of rows per distinct rp.cod_entidad
  MAX(to_date(to_char(SYSDATE,\'YYYYMMDD\'),\'YYYY-MM-DD\')) as fecha_pago,MAX(to_char(sysdate,\'hh-mi-ss\')) as hora_pago
FROM registry rp
INNER JOIN product pc ON (pc.nro_solicitud = rp.nro_solicitud)
WHERE pc.resp_2 = \'OK\' AND pc.resp_1 = \'OK\'
GROUP BY rp.cod_entidad
隐含在认为有害的地方 附言请不要在联接的地方使用丑陋的隐式,因为这会造成混淆和不好的习惯,因为您会毫无理由地在
where
子句中混合选择条件和联接条件。 自1993年以来,我们就有了显式的联接语法,我热烈推荐它。 这将使编写正确的查询变得容易得多,并使您的意图更加清晰。     ,        
select entity,sum(overall)
from registry
group by entity
order by entity
您的问题很难理解...     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...