Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

Contar los diferentes itens

Estas en el tema de Contar los diferentes itens en el foro de Oracle en Foros del Web. tengo un query en el cual selecciono productos, y categorias. en la seleccion hay productos que pertenecen a la misma categoria de esta forma tengo ...
  #1 (permalink)  
Antiguo 07/12/2007, 11:59
 
Fecha de Ingreso: diciembre-2007
Mensajes: 7
Antigüedad: 16 años, 4 meses
Puntos: 0
Contar los diferentes itens

tengo un query en el cual selecciono productos, y categorias. en la seleccion hay productos que pertenecen a la misma categoria de esta forma tengo
categoria producto
01 02
01 03
04 01
lo que deceo es contar las diferentes categorias y especificar cual aparece mas veces si me ayudan se los agradecere mucho nose como hacerle
  #2 (permalink)  
Antiguo 07/12/2007, 12:24
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Contar los diferentes itens

MARLIT, me encantaria ayudarte, pero no se muy bien todavia cual es tu problema...

si solo es contar las diferentes categorias, la siguiente sentencia te servira...

Código:
select count(*) cantidad, categoria from categorias group by categoria
pero me parece que tu problema es otro, asi que si puedes explicate un poco mas y cuentame cual es tu problema.

Sldo Atte, Mario.
  #3 (permalink)  
Antiguo 07/12/2007, 15:49
 
Fecha de Ingreso: diciembre-2007
Mensajes: 7
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Contar los diferentes itens

Bueno aqui pongo mi query, en donde selecciono todos los productos comprados por un cliente entre una determinada fecha, cada producto pretenece a una categoria, si solo corro en el query interno(color rojo) me despliga lo de abajo en color verde, el caso es que quiero contar cual es la categoria que mas se repite y no me sale cuando lo corro todo me despliga la que no es, porfa te lo agradecere mucho


select * from
( select a.cod_grupo_terap,a.des_producto,count(b.cod_produ cto)--,C.COD_CLIENTE
from cmr.MAE_PRODUCTO_COM a,

(select num_documento,cod_producto,count(cod_producto)
from btlcadena.D_DOCUMENTOS
group by num_documento,cod_producto)b,

(select cod_cliente,num_documento,fch_factura from btlcadena.C_DOCUMENTOS)c

where trim(a.cod_producto)=trim(b.cod_producto) and

TO_NUMBER(C.cod_cliente)=TO_NUMBER('0000000006')an d trim(b.num_documento)=trim(c.num_documento)

and a.cod_grupo_terap <>' '
and c.fch_factura between('11-DIC-06') and ('11-JUN-07')
GROUP BY a.cod_grupo_terap,a.des_producto
order by count(b.cod_producto) desc
)
where rownum=1



COD_GRUPO_TERAP DES_PRODUCTO COUNT(B.COD_PRODUCTO)--,C.COD_CLIENTE
--------------- -------------------------------------------------------------------------------- -------------------------------------
06 SINUTAB NO SUEÑO CJA x 144 TAB 4
05 UVAMIN SR CJA x 20 CAP 2
07 DESLORAN TAB 5 mg CJA x 10 TAB 2
07 EFECTINE D CJA x 24 CAP BLANDA 2
14 SYSTANE GOT LUBRIC OCUL x 15 ml FCO 2
07 UNICLAR ADULTO SPRAY NAS 0.05 % FCO x 18 gr 2
19 AVAMIGRAN CJA x 25 SOBRE 2

7 rows selected
  #4 (permalink)  
Antiguo 10/12/2007, 07:17
 
Fecha de Ingreso: noviembre-2007
Ubicación: Argentina
Mensajes: 134
Antigüedad: 16 años, 5 meses
Puntos: 3
Re: Contar los diferentes itens

Bueno Joven MARLIT....

lo primero que hice fue ordenar un poco la consulta, la prolijidad en el armada de la consulta es muy importante.

me di cuenta que haces un join entre numero de documento y otro por codigo de producto, supongo que la categoria a la que te refieres la cuales no haces mencion en ningun lado, es COD_GRUPO_TERAP.

bien aqui el cogigo.

Código:
SELECT FECHA,
       NUM_DOCUMENTO,
       COD_CLIENTE,
       COD_GRUPO_TERAP,
       COD_PRODUCTO,
       SUM(COD_PRODUCTO) OVER(PARTITION BY COD_GRUPO_TERAP) PRODUCTO_POR_CATEGORIA,
       DES_PRODUCTO
  FROM (SELECT TRIM(COD_GRUPO_TERAP) COD_GRUPO_TERAP,
               DES_PRODUCTO,
               COUNT(TRIM(COD_PRODUCTO)) CANTIDAD
          FROM CMR.MAE_PRODUCTO_COM
         WHERE TRIM(COD_GRUPO_TERAP) IS NOT NULL
         GROUP BY TRIM(A.COD_GRUPO_TERAP),
                  A.DES_PRODUCTO
       ) A, 
       (SELECT TRIM(NUM_DOCUMENTO) NUM_DOCUMENTO,
               TRIM(COD_PRODUCTO) COD_PRODUCTO,
               COUNT(*) CANTIDAD
          FROM BTLCADENA.D_DOCUMENTOS 
         GROUP BY TRIM(NUM_DOCUMENTO),
                  TRIM(COD_PRODUCTO)
       )B,
       (SELECT TO_NUMBER(COD_CLIENTE) COD_CLIENTE,
               TRIM(NUM_DOCUMENTO) NUM_DOCUMENTO,
               FCH_FACTURA
          FROM BTLCADENA.C_DOCUMENTOS
         WHERE FCH_FACTURA BETWEEN ('11-DIC-06') 
                               AND ('11-JUN-07')
       )C
 WHERE A.COD_PRODUCTO = B.COD_PRODUCTO 
   AND C.COD_CLIENTE = 6
   AND B.NUM_DOCUMENTO = C.NUM_DOCUMENTO
la solucion a tu problema esta en la linea...

Código:
SUM(COD_PRODUCTO) OVER(PARTITION BY COD_GRUPO_TERAP)
esto suma la cantidad de productos por categoria y aparece como una columna mas.

Puede que algun cambio no funcione, corrigelo y dime luego como te fue.

Sldo Atte, Mario.
  #5 (permalink)  
Antiguo 13/12/2007, 09:24
 
Fecha de Ingreso: diciembre-2007
Mensajes: 7
Antigüedad: 16 años, 4 meses
Puntos: 0
Re: Contar los diferentes itens

pues ya esta... gracias por todo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:16.