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
您的问题很难理解...     

要回复问题请先登录注册