Oracle - Buenas duda con ejercicio de pl/sql

 
Vista:
sin imagen de perfil

Buenas duda con ejercicio de pl/sql

Publicado por anonymous (2 intervenciones) el 08/04/2016 14:22:49
Buenas

Tengo dudas con este ejercicio.

Crear un bloque anónimo que sirva para calcular cuántos coches hay en el departamento ventas (el departamento ventas se identifica por el número 5) de la tabla coches.
Hazlo sin utilizar la función de agregación COUNT ( ).

Por ahora lo que tengo es esto. No consigo que me saque el número de coches que hay. Se que hay que hacerlo con un for y un contador pero no consigo sacarlo.



1
2
3
4
5
6
7
8
9
10
11
12
13
SET SERVEROUTPUT ON;
 
DECLARE
 
CURSOR v_coches IS SELECT coches FROM concesionario WHERE dept LIKE '5';
 
        FOR contador IN v_coches LOOP
 
                DBMS_OUTPUT.put_line(contador.coches);
 
        END LOOP;
 
END;


Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 499
Oro
Ha mantenido su posición en Oracle (en relación al último mes)
Gráfica de Oracle

Buenas duda con ejercicio de pl/sql

Publicado por Rafael (328 intervenciones) el 11/04/2016 09:56:38
Veo algunos detalles ...

1. Por que usas el operador LIKE si sabes que tiene que ser igual a es decir el operador deberia ser "=".
2. Si dice número ... ¿es que el tipo de dato es numerico? luego por que lo pones entre comillas, deberia ser directamente 5
3. No nos dices los campos de la tabla concesionario, pero si existe el campo coches, lo que estas haciendo no te dice cuantos tiene, te dice lo que contiene dicho valor, si lo quieres hacer por ese metodo deberias entonces poner un CONTADOR como tal que fuera sumando un 1 por cada registro evaluado.
Algo similar a:
1
2
3
4
5
6
7
8
9
10
11
DECLARE
   total_coches number(6);
   CURSOR v_coches IS SELECT coches FROM concesionario WHERE dept = 5;
BEGIN
   total_coches := 0;
   FOR contador IN v_coches
   LOOP
     total_coches :=total_coches+ 1;
   END LOOP;
   DBMS_OUTPUT.put_line(total_coches);
END;

Saludos

Pd. Si te sirve la info, a mi me sirve un +1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Buenas duda con ejercicio de pl/sql

Publicado por anonymous (2 intervenciones) el 11/04/2016 13:55:41
Muchas gracias, me ha funcionado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar